将空委托分配给事件有什么意义?
What is the point of assigning an empty delegate to an event?
我刚刚在我正在阅读的一本书中看到这段代码:
public event EventHandler<ProjectEventArgs> ProjectUpdated = delegate { };
在这里设置委托只是为了确保 ProjectUpdated
永远不会为 null,这样可以避免在触发事件之前进行标准的 null 检查吗?
通常,当您要引发一个事件时,您必须检查空值,也就是说,没有附加的事件处理程序。使用这种方法,您可以跳过此检查,因为事件将始终有一个空处理程序。
我刚刚在我正在阅读的一本书中看到这段代码:
public event EventHandler<ProjectEventArgs> ProjectUpdated = delegate { };
在这里设置委托只是为了确保 ProjectUpdated
永远不会为 null,这样可以避免在触发事件之前进行标准的 null 检查吗?
通常,当您要引发一个事件时,您必须检查空值,也就是说,没有附加的事件处理程序。使用这种方法,您可以跳过此检查,因为事件将始终有一个空处理程序。