2010-11-24 21 views
2

,當我發現燒製在C#中的事件不同的語法版本,我真的不能弄清楚到底有什麼區別之間:C#:不同的語法形式的點火事件

if (OnMyEvent!= null) 
    OnMyEvent(this, new MyEventEventArgs()); 

和:

OnMyEvent.Invoke(this, new MyEventEventArgs()); 

特別是如果我沒有任何線程上下文更改?

在此先感謝!

回答

4

使用反射器或ildasm,你可以看到這些編譯(模null檢查)到完全相同的東西(Invoke()的調用)。

至於什麼是可取的,你應該總是檢查null,你會經常看到Invoke()語法的調用語法。

+0

謝謝! [在此評論中填充> 15個字符:)] – TheZeta 2010-11-24 02:56:25

1

當嘗試通過反射觸發事件時,Invoke方法會很有用。