"btn.Click + = new RoutedEventHandler(ButtonClick)"和"btn.Click + = ButtonClick"之间有什么区别?

Dan*_*hat 5 c# wpf

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

btn.Click += new RoutedEventHandler (ButtonClick)

btn.Click += ButtonClick.

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

Mat*_*son 7

第一个版本将在.Net的所有版本上编译而没有错误.

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

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

它被称为方法组转换.详情请见此处:

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