c# - 为什么我会收到以下代码的异常?

标签 c# viewmodel

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

 Boolean IsBusy { get; }

它在类中实现为:

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

        private set
        {
            if (this._isBusy != value)
            {
                this._isBusy = value;
                this.OnPropertyChanged("IsBusy");
            }
        }
    }

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

“IsBusy”引发了“System.NullReferenceException”类型的异常 bool {System.NullReferenceException}

我想不通。如果我将所有 Boolean 更改为 bool,则会出现相同的错误。

我该如何解决?

最佳答案

您通过在调用它之前检查 OnPropertyChanged 是否为 null 来修复它,假设 OnPropertyChanged 是一个事件或委托(delegate)变量(您没有明确说明)。这与 boolBoolean 无关,它们是等效的(假设 Boolean 解析为 System.Boolean).

我看不出它会抛出 NullReferenceException 的任何其他原因 - 虽然它确实可以帮助您弄清楚在它抛出异常时您是在调用 getter 还是 setter。一个简短但完整的示例会更有帮助。

关于c# - 为什么我会收到以下代码的异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4108654/

相关文章:

c# - 如何在没有给定 RavenDB 索引的情况下删除集合?

c# - 拦截 Azure 函数主机关闭 : Flush Application Insights TelemetryClient

c# - 在 C# 中扫描并另存为 PDF

c# - 我使用的是哪个版本的 C#

wpf - 我们可以在 ViewModel 中创建 UI 元素吗?

c# - asp .net mvc 中带有 View 模型的多个路由参数

mvvm - Knockout.js:一个页面或页面的一部分上的多个 ViewModel 绑定(bind)

c# - 定时器在待机模式下会发生什么?

java - 扩展 BaseObservable 的 ViewModel 和 Android ViewModel 类有什么区别?

asp.net-mvc - 模型不适用 DataType.Password