DOBON.NET DOBON.NETプログラミング掲示板過去ログ

Propertyが自動的にコールされる

環境/言語:[VB.NET .NET2003]
分類:[ASP.NET]

いつもお世話になっています。

ユーザコントロールにPublic Propertyを定義しました。
このプロパティがユーザコントロールを配置している
フォームをNewすると自動的にコールされてしまいます。
(値に引数をもつPropertyはコールされません)

この現象はプロパティの仕様なのでしょうか。
抑止することは出来ないでしょうか。
宜しくお願いします。


Public Property No() As Integer
Get
Return intNo
End Get

Set(ByVal intValue As Integer)
intNo = intValue
End Set
End Property
プロパティを通して初期化してるだけじゃないの?
コンストラクタ内は動作するからね。
コントロールをNewすれば,プロパティの値は規定値に初期化されます。
Integer型は0に初期化されるので,その0を書き込む処理なのでは?

intNo = intValue
debug.print(intNo.ToString)

と仕掛けておけば,値が何にセットされたのかわかります。
0にセットされたならそれは初期化だとおもいます。
もちろんフレームワークがプロパティを使って初期化を行うわけではありません。
プロパティが変数を伴っているかどうかも、フレームワークはわかりません。

それよりもデバッガで捕まえて、呼び出し履歴を見れば一発でしょう。
フォーム デザイナで生成されたコードに
プロパティ値が0で呼び出されていました。

抑止することは出来なかったので、
<DefaultValue>を使って対処することにしました。

はいこーんさん
YASさん
中博俊さん

回答していただき、ありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板