我见过很多人这样定义他们的事件: public event EventHandler<EventArgs> MyEvent = delegate{}; 有人能解释一下这与不使用它定义有什么不同吗?这是为了避免在触发事件时检查空值吗?
你说的对 - 添加空委托可以避免这种情况:public void DoSomething() { if (MyEvent != null) // Unnecessary! MyEvent(this, "foo"); }