C# 分配给事件时是否隐式委托分配?

C# 分配给事件时是否隐式委托分配?,c#,delegates,C#,Delegates,可能重复: 在C#.NET 3.5中,编译器不关心我是否这样做(假设ButtonClickHandler是一个函数): 或: 这些功能相同吗?我阅读了下面的stackoverflow问题,但我不确定它是否也适用于此场景: 在C#4中,这将生成相同的代码,因此它们在功能上是相同的。 在第一种(较短的)形式中,编译器从方法签名推断委托类型,这节省了显式执行的工作 是的,前者只是后者的语法糖分。编译器只是推断委托的类型并为您构造它。编译器将发出完全相同的IL 在C#2中添加了第一个更短、更清晰的语法

可能重复:

在C#.NET 3.5中,编译器不关心我是否这样做(假设ButtonClickHandler是一个函数):

或:

这些功能相同吗?我阅读了下面的stackoverflow问题,但我不确定它是否也适用于此场景:

在C#4中,这将生成相同的代码,因此它们在功能上是相同的。
在第一种(较短的)形式中,编译器从方法签名推断委托类型,这节省了显式执行的工作

是的,前者只是后者的语法糖分。编译器只是推断委托的类型并为您构造它。编译器将发出完全相同的IL

在C#2中添加了第一个更短、更清晰的语法(委托推理,我建议您使用它以提高可读性),这就是为什么一些设计人员(也是Microsoft的)倾向于使用
new
ing委托的冗长语法的原因


事实上,我认为这是一个复制品

对不起,重复了。使用stackoverflow的搜索找到类似的问题真是让人头疼。事实上,仔细想想,我相信你的问题比上一个好——搜索同一个问题的人会更容易找到,因为它在标题中包含了更多相关的词(即委托和隐式).我投票决定结束我自己的问题,因为我不能删除它。stackoverflow的搜索非常糟糕,所以我当然找不到你们链接到的任何有用的问题。
button.OnButtonClicked += ButtonClickHandler;
button.OnButtonClicked += new ButtonClickHandlerDelegate( ButtonClickHandler );