为什么使用匿名委托声明此事件?

Joh*_*res 6 c# events

我见过人们定义他们的事件是这样的:

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)