我见过人们定义他们的事件是这样的:
public event EventHandler<EventArgs> MyEvent = delegate{};
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下如果没有它,这与定义它有何不同?是否要在提升事件时避免检查null?
Pau*_* pk 10
你明白了 - 添加空委托让你避免这种情况:
public void DoSomething() {
if (MyEvent != null) // Unnecessary!
MyEvent(this, "foo");
}
Run Code Online (Sandbox Code Playgroud)