0

在所有问题答案的代码中:

有一个EventHandler handler不为空的检查

EventHandler handler = this.somethingHappened;  
if (handler != null)  
{  
   handler(this, EventArgs.Empty);  
}  

订阅:

 observable.SomethingHappened += observer.HandleEvent;

以及互联网上的文章、教程、示例等。
虽然我无法掌握这个处理程序何时以及如何碰巧为空。

我已经阅读了类似问题的答案:

但我仍然无法理解这种例子和插图是handler如何发生的null

谁能解释一下这段代码中的处理程序是如何发生的null

4

1 回答 1

2

很简单,如果尚未将委托分配给特定的事件处理程序,它将为 null,并且尝试调用它会导致 NullReferenceException。

在调用它之前进行空检查可防止发生此 NullReferenceException。

于 2013-02-03T18:05:29.493 回答