可能重复:
在事件声明中添加匿名空委托是否有不利之处?
在使用事件处理程序(在 C# 中)时,以下模式非常常见:
public event Action handler;
…
// some method:
if(handler != null) handler();
为这个事件分配一个空代表有什么缺点吗?这将在if !=null
触发事件的任何地方保存条件。当然,这只适用于当我们不能保证事件总是被分配一个适当的委托时。
public event Action handler;
…
// in constructor:
handler += ()=>{};
…
// some method:
handler();
当然,性能会受到轻微影响,但它会使代码更简洁。在这种情况下,最佳做法是什么?有什么技术劣势吗?