委托创建表达式和方法组转换之间有什么区别?

时间:2011-01-14 15:46:38

标签: c# wpf event-handling

我想知道

之间有什么区别
button.Click += new RoutedEventHandler(button_Click);

button.Click += button_Click;

我已经看过两个并且通常使用第二个版本,但我想知道差异是什么以及何时使用其中一个。

1 个答案:

答案 0 :(得分:5)

没有区别,除了第一个在C#1中有效而第二个不在。

另一方面,只是RHS表达式的区别。例如:

Delegate valid = new RoutedEventHandler(button_Click);
Delegate invalid = button_Click;

在后一种情况下,编译器不知道您要将方法组转换为哪个委托,因此您将遇到编译时失败。