我在删除处理程序之前想知道
OnEvent - = handler;
我们是否需要确定处理程序是否为null。当handler为null时,是否有任何不良影响?
答案 0 :(得分:4)
不,如果handler
为空,则为无操作...或者至少,如果它是对Delegate.Remove
的简单调用,则会有以下文档:
如果 value 为null,或者在 source <的调用列表中找不到 value 的调用列表,则返回 source / em>的
现在实际的事件只是有效地使用“删除”方法......并且可以做任何想做的事情。这将是一个非常糟糕的实现事件,但在传递null处理程序时会产生不良影响,因为null在委托条款中实际上意味着“空调用列表”。
答案 1 :(得分:3)
不,这不是问题。这就像删除集合中的非现有项目。没有任何事情发生。