プロパティがいつ初期化されるのか、少し混乱しています。
次のように宣言されたプロパティがあるとします。
private Dictionary<string, Dictionary<string,string>> MessageLookup
{
get
{
return messages ?? doSomething();
}
}
doSomething メソッドはメッセージ ディクショナリにデータを入力し、それを返します。
私の質問は、このコードはいつ実行されるのですか? doSomething コードにブレークポイントを配置するとヒットしませんが、デバッガーで表示すると、MessageLookup プロパティがデータを保持しています (これが初期化される唯一の場所です)。
このコードは構築時に実行されますか? 変数名にカーソルを合わせると、デバッガーは自動的に実行しますか? もしそうなら、なぜブレークポイントにヒットしないのですか?