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

标签 c# events

我发现在 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/

相关文章:

c# - 在 C# 客户端上接收从 C++ 服务器发送的数据

c# - validateImageData 参数和 Image.FromStream()

c# - 从 IList<T> 转换为非泛型 IList

javascript - 如何使用填充属性数据传输创建事件?

javascript - 对如何使用模块模式的困惑

c# - Microsoft Speech Platform 11(服务器)上的 AppendDictation?

c# - 如何在表单中模拟按钮按下的视觉效果?

javascript - 客户端 iCalendar 事件创建器

c++ - 模板化 boost::bind 以自动处理成员函数的多个参数

c# - DataGridView 中的 CellClick 事件和 SelectionChanged 事件