在移除处理程序之前,我想知道
OnEvent -= handler;
我们需要确定处理程序是否为空。当处理程序为空时,会有任何不良影响吗?
handler
为空,则它是无操作...或者至少,如果它是对Delegate.Remove
的简单调用,则会是这样。其中包括文档:现实中,一个实际的event就像一种“remove”方法,而且它可以做任何想做的事情。不过,如果传递一个空处理程序,那么它将是一个相当糟糕的实现事件,因为在代理方面,null实际上意味着“空调用列表”。如果value为null或value的调用列表未在source的调用列表中找到,则返回source。