为什么我使用以下代码获得异常?

Ken*_*hou 2 c# viewmodel

我在接口中定义了一个属性:

 Boolean IsBusy { get; }
Run Code Online (Sandbox Code Playgroud)

它在课堂上实现为:

private Boolean _isBusy = false;
public Boolean IsBusy
    {
        get
        {
            return this._isBusy;
        }

        private set
        {
            if (this._isBusy != value)
            {
                this._isBusy = value;
                this.OnPropertyChanged("IsBusy");
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

然后,当我运行应用程序时,在构造函数中检查IsBusy值时,我总是会遇到以下类型的错误:

'IsBusy'抛出了'System.NullReferenceException'类型的异常'bool {System.NullReferenceException}

我无法弄清楚.如果我改变一切Booleanbool,得到同样的错误.

我该如何解决?

Jon*_*eet 10

你通过OnPropertyChanged在调用它之前检查是否为null来修复它,假设它OnPropertyChanged是一个事件或一个委托变量(你没有说清楚).这与boolor 无关Boolean(假设Boolean已解决System.Boolean).

我看不出它会抛出任何其他原因NullReferenceException- 尽管它可以帮助你澄清你是否在抛出异常时调用getter或setter.一个简短但完整的例子会更有帮助.