采取以下代码:
private void anEvent(object sender, EventArgs e) {
//some code
}
以下是什么区别?
[object].[event] += anEvent;
//and
[object].[event] += new EventHandler(anEvent);
[UPDATE]
显然,两者之间没有区别......前者只是后者的语法糖。
答案 0 :(得分:77)
没有区别。在第一个示例中,编译器将自动推断您要实例化的委托。在第二个示例中,您明确定义了委托。
在C#2.0中添加了委托推理。所以对于C#1.0项目,第二个例子是你唯一的选择。对于2.0项目,使用推理的第一个示例是我更喜欢使用并在代码库中看到的 - 因为它更简洁。
答案 1 :(得分:16)
[object].[event] += anEvent;
只是 -
的语法糖[object].[event] += new EventHandler(anEvent);
答案 2 :(得分:10)
我认为没有区别。编译器将第一个转换为第二个。