private CompanySetting _companySettings= null;
public CompanySetting CompanySettings
{
get
{
_companySettings = _companySettings ?? getCompanySettings();
return _companySettings;
}
set
{
_companySettings = value;
}
}
我的viewmode中有以上属性。我开始注意到,当我实例化此类时,如果不调用属性的get方法,则会自动设置该属性。这意味着调用了getCompanySettings,从而加载了companysettings属性。 我甚至在getCompanySettings方法中放了一个断点,我知道它没有在那里打破。这是.net的事吗?
答案 0 :(得分:2)
如果您使用的是Visual Studio调试器,它可能配置为自动评估属性getter,因为它们被认为是纯粹的(即没有评估它们的副作用)。如果你有一个 not 这样的属性getter,你需要添加DebuggerBrowsableAttribute
属性以防止它被调试器评估。
[DebuggerBrowsable(DebuggerBrowsableState.Never)]
public CompanySetting CompanySettings
{
get
{
_companySettings = _companySettings ?? getCompanySettings();
return _companySettings;
}
set
{
_companySettings = value;
}
}