事件处理程序检查是否为null是什么
本文关键字:null 是什么 是否 程序 检查 事件处理 | 更新日期: 2023-09-27 17:57:27
在所有问题答案的代码中:
- C#观察者/可观察到的委托的超级简单示例
检查CCD_ 1是否为空
EventHandler handler = this.somethingHappened;
if (handler != null)
{
handler(this, EventArgs.Empty);
}
订阅:
observable.SomethingHappened += observer.HandleEvent;
以及互联网上的文章、教程、示例等
尽管我无法理解这个处理程序何时以及如何为null。
我已经仔细阅读了类似问题的答案:
- 在事件处理程序中使用空签入
但我仍然不明白在这样的例子和插图中,CCD_ 2怎么会碰巧是CCD_。
有人能解释一下这段代码中的处理程序是怎么变成null
的吗?
很简单,如果还没有将委托分配给特定的事件处理程序,那么它将为null,尝试调用它将导致NullReferenceException。
在调用之前执行null检查可防止出现此NullReferenceException。