我发现在 C# 中触发事件的不同语法版本,但我无法真正弄清楚它们之间到底有什么区别:
if (OnMyEvent!= null)
OnMyEvent(this, new MyEventEventArgs());
和:
OnMyEvent.Invoke(this, new MyEventEventArgs());
特别是如果我没有任何线程上下文更改?
提前致谢!
最佳答案
使用 Reflector 或 ildasm,您可以看到它们编译(对 null
检查取模)为完全相同的东西(调用 Invoke()
)。
至于什么是理想的,您应该始终检查 null
,并且您会更频繁地看到调用语法而不是 Invoke()
语法。
关于C#:触发事件时的不同语法形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4263011/