0
private CompanySetting _companySettings= null;
    public CompanySetting CompanySettings
    {
        get
        {          
            _companySettings = _companySettings ?? getCompanySettings();
            return _companySettings;
        }
        set
        {
            _companySettings = value;
        }
    }

我的视图模式中有上述属性。我开始注意到,当我实例化这个类时,没有调用属性的 get 方法,属性是自动设置的。这意味着调用 getCompanySettings 从而加载 companysettings 属性。我什至在 getCompanySettings 方法中设置了一个断点,我知道它不会在那里中断。这是.net的东西吗?

4

1 回答 1

2

如果您使用的是 Visual Studio 调试器,它可能被配置为自动评估属性 getter,因为它们被假定为纯的(即评估它们没有副作用)。如果您有一个以这种方式运行的属性 getter,则需要添加该DebuggerBrowsableAttribute属性以防止调试器对其进行评估。

[DebuggerBrowsable(DebuggerBrowsableState.Never)]
public CompanySetting CompanySettings
{
    get
    {          
        _companySettings = _companySettings ?? getCompanySettings();
        return _companySettings;
    }
    set
    {
        _companySettings = value;
    }
}
于 2013-10-21T22:27:37.083 回答