C#:“+ = anEvent”和“+ = new EventHandler(anEvent)”之间的区别
以下面的代码:
private void anEvent(object sender, EventArgs e) { //some code }
以下是什么区别?
[object].[event] += anEvent; //and [object].[event] += new EventHandler(anEvent);
[UPDATE]
显然,两者之间没有区别……前者只是后者的语法糖。
没有区别。 在你的第一个例子中,编译器会自动推断你想要实例化的委托。 在第二个示例中,您明确定义了委托。
委托推理是在C#2.0中添加的。 所以对于C#1.0项目,第二个例子是唯一的select。 对于2.0项目,使用推理的第一个例子是我希望在代码库中使用和看到的 – 因为它更简洁。
[object].[event] += anEvent;
只是语法糖 –
[object].[event] += new EventHandler(anEvent);
我不认为有什么区别。 编译器将第一个转换为第二个。