[英]Why am I getting an exception with the following code?
我在接口中定义了一个属性:
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
, bool
得到相同的错误。
我该如何解决?
你可以通过在调用它之前检查OnPropertyChanged
是否为空来修复它,假设OnPropertyChanged
是一个事件或一个委托变量(你还没有说清楚)。 这与bool
或Boolean
无关,它们是等效的(假设Boolean
被解析为System.Boolean
)。
我看不出它会抛出NullReferenceException
任何其他原因 - 尽管它可以帮助你澄清你是否在抛出异常时调用getter或setter。 一个简短但完整的例子会更有帮助。
bool
只是Boolean
的语法快捷方式
bool
和Boolean
都在编译时评估相同的东西。
没有。 Boolean
是.net CLI用来表示true / false值的内容。 bool
是c#使用的。
bool
是struct System.Boolean
的C#别名。 他们是一样的。 this.OnPropertyChanged
未分配。 这与bool
vs Boolean
完全无关。 C#包含所有本机类型的别名。 字符串表示字符串,Int32表示int等,与您使用的字符没有区别:
Boolean不能为NULL,因此您可能会因OnPropertyChanged中的某些内容而出错。
bool
关键字只是Boolean
关键字的类型别名。
与int
相同的是Int32
的别名。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.