C# 连接事件处理程序的这两种语法之间有什么区别?

C# 连接事件处理程序的这两种语法之间有什么区别?,c#,.net,events,delegates,C#,.net,Events,Delegates,可能重复: 我已经看到很多类似这样的代码: foo.Drop += new DragEventHandler(fooHandler); 但在过去,我总是这样做: foo.Drop += fooHandler; 这两种语法之间有区别吗?如果是这样的话,长期这么做有什么好处吗?它们的结果是一样的 因此,在回答你的问题时,答案是否定的——使用较长的版本没有任何好处。第二个版本是第一个版本的缩写;它们将编译为同一个IL 然而,第二种语法对C#2.0来说是新的;C#1仅支持第一个 没有区别,因为.N

可能重复:

我已经看到很多类似这样的代码:

foo.Drop += new DragEventHandler(fooHandler);
但在过去,我总是这样做:

foo.Drop += fooHandler;

这两种语法之间有区别吗?如果是这样的话,长期这么做有什么好处吗?

它们的结果是一样的


因此,在回答你的问题时,答案是否定的——使用较长的版本没有任何好处。

第二个版本是第一个版本的缩写;它们将编译为同一个IL


然而,第二种语法对C#2.0来说是新的;C#1仅支持第一个

没有区别,因为.Net 2和您可以使用所谓的方法组转换,它允许您直接将方法名称注册到事件,而无需创建委托对象

它们是相同的,但在第二个示例中,编译器使用方法组转换为您推断委托类型。语法糖…

的可能重复,肯定是重复。投票决定关闭我自己。你链接到一个消歧页面,该页面表明MSIL是现在所称的“以前的首字母缩略词”。@Cody Gray更新为更直接的链接。我认为这是为了强调该平台不是完全专有的。微软在不同的时间对Mono项目这样的努力多少有些鼓励。我认识的每个人都叫它“IL”,包括我自己。防止营销干扰理解。;-)很好,谢谢。答案更新为“IL”;)