C#:触发事件时形成不同的语法

时间:2010-11-24 02:38:10

标签: c# events

我发现了在c#中触发事件的不同语法版本,我无法弄清楚它们之间究竟有什么区别:

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

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

特别是如果我没有任何线程上下文更改?

提前致谢!

2 个答案:

答案 0 :(得分:4)

使用Reflector或ildasm,你可以看到这些编译(模数为null检查)完全相同(调用Invoke())。

至于什么是理想的,你应该经常检查null,并且你会经常看到Invoke()语法的调用语法。

答案 1 :(得分:1)

尝试通过反射触发事件时,Invoke方法很有用。