5

在 C# 中,注册事件处理程序时,您有两个选项(btnis of type System.Windows.Controls.Button):

btn.Click += new RoutedEventHandler (ButtonClick)

btn.Click += ButtonClick.

它们之间的语义差异及其含义是什么?

4

3 回答 3

7

第一个版本将在所有版本的 .Net 上无错误地编译。

第二个版本只能在 .Net 2 或更高版本上编译。

这是唯一的区别。第二个版本只是 .Net 2 引入的一些语法糖。

它被称为方法组转换。有关详细信息,请参见此处:

http://mike-ward.net/blog/post/00020/anonymous-methods-method-group-conversions-and-eventhandler

于 2013-06-18T09:21:32.600 回答
3

据我了解,什么都没有,编译器会推断委托类型并自动为您包装它,这只是一种简写方式(因为谁真的想把它全部输入)。

于 2013-06-18T09:12:32.813 回答
1

没有区别。要了解这些 C# 功能,您应该阅读 C#委托事件关键字。

于 2013-06-18T09:18:58.953 回答