I'm a little confused about when exactly my Property is being initialized.
Suppose I have a property declared like this:
private Dictionary<string, Dictionary<string,string>> MessageLookup
{
get
{
return messages ?? doSomething();
}
}
The doSomething method populates the messages Dictionary and returns it.
My question is, when is this code run? If I place a breakpoint into the doSomething code, it isn't hit, but the MessageLookup property is holding data (this is the only place it is initialized) when I view it in the debugger.
Is this code run at construction? does the debugger run it automatically when I hover over the variable name? If so, why isn't the breakpoint hit?