我們可以從兩個方面提高事件:.NET事件認識和NullObject模式
public event EventHandler MyEvent;
private void DoSomething()
{
...
var handler = MyEvent;
if (handler != null)
handler(this,EventArgs.Empty);
}
和
public event EventHandler MyEvent = (o,e) => {} ;
private void DoSomething()
{
...
MyEvent(this, EventArgs.Empty);
}
我喜歡最後一個。它更短。
我的同事堅持第一個變體。
第一個和第二個有什麼優勢嗎?
您至少可以簡化第一個'如果(this.MyEvent!= NULL)this.MyEvent(這一點,EventArgs.Empty);' –
@JonB:錯了;這不是線程安全的。 – SLaks
你將如何防止課程將事件設置爲空? –