C#: ' += anEvent' 和 ' += new EventHandler(anEvent)' 之间的区别

标签 c# delegates event-handling

采用以下代码:

private void anEvent(object sender, EventArgs e) {
    //some code
}

下面的有什么区别?

[object].[event] += anEvent;

//and

[object].[event] += new EventHandler(anEvent);

[更新]

显然,两者之间没有区别......前者只是后者的语法糖。

最佳答案

没有区别。在您的第一个示例中,编译器将自动推断您想要实例化的委托(delegate)。在第二个示例中,您显式定义了委托(delegate)。

委托(delegate)推理是在 C# 2.0 中添加的。因此,对于 C# 1.0 项目,第二个示例是您唯一的选择。对于 2.0 项目,第一个使用推理的示例是我更愿意在代码库中使用和看到的 - 因为它更简洁。

关于C#: ' += anEvent' 和 ' += new EventHandler(anEvent)' 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/550703/

相关文章:

C# GetFunctionPointerForDelegate cdecl 而不是 stdcall

jquery - 拉斐尔的悬停事件

javascript - 使用 jquery 或 JavaScript 在不同页面上触发事件

c# - 将 Entity Framework Core 实体转换为 SQL 字符串

ios - 从委托(delegate)调用时 UIView.animateWithDuration 不起作用?

c# - 属性id是对象关键信息的一部分,不可修改

objective-c - 在需要或不需要实现协议(protocol)的情况下进行委托(delegate)……背后的原理是什么?

事件触发的 JavaScript Jquery 函数一次性执行,而不是在正确的时间执行

c# - 如何获取 JSON 对象 - C#

c# - 在 WPF 中创建动态 CRUD UI