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

以下面的代码为例:

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

以下内容之间有什么区别?

[object].[event] += anEvent;


//and


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

[更新]

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

12020 次浏览

我不认为有什么不同。编译器把第一个转换成第二个。

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

委托推理是在 C # 2.0中添加的。因此,对于 C # 1.0项目,第二个示例是您唯一的选择。对于2.0项目,第一个使用推理的例子是我希望在代码库中使用和查看的——因为它更简洁。

[object].[event] += anEvent;

只是句法糖

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