我对我的属性何时被初始化有点困惑。
假设我有一个这样声明的属性:
private Dictionary<string, Dictionary<string,string>> MessageLookup
{
get
{
return messages ?? doSomething();
}
}
doSomething 方法填充消息字典并返回它。
我的问题是,这段代码什么时候运行?如果我在 doSomething 代码中放置一个断点,它不会被命中,但是当我在调试器中查看 MessageLookup 属性时,它会保存数据(这是它初始化的唯一位置)。
这段代码是在施工时运行的吗?当我将鼠标悬停在变量名上时,调试器会自动运行它吗?如果是这样,为什么断点没有命中?