Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 什么';委托创建表达式和方法组转换之间的区别是什么?_C#_Wpf_Event Handling - Fatal编程技术网

C# 什么';委托创建表达式和方法组转换之间的区别是什么?

C# 什么';委托创建表达式和方法组转换之间的区别是什么?,c#,wpf,event-handling,C#,Wpf,Event Handling,我想知道他们之间有什么区别 button.Click += new RoutedEventHandler(button_Click); 及 我见过两个版本,通常都使用第二个版本,但我想知道它们之间的区别是什么,以及何时使用它们。没有区别,只是第一个版本在C#1中有效,第二个版本无效 另一方面,就RHS表达式而言存在差异。例如: Delegate valid = new RoutedEventHandler(button_Click); Delegate invalid = button_Cli

我想知道他们之间有什么区别

button.Click += new RoutedEventHandler(button_Click);


我见过两个版本,通常都使用第二个版本,但我想知道它们之间的区别是什么,以及何时使用它们。

没有区别,只是第一个版本在C#1中有效,第二个版本无效

另一方面,就RHS表达式而言存在差异。例如:

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

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

此外,几乎可以肯定的是,您不必担心C#1。@Tim:除了知道为什么您可能有采用冗长方法的代码外,这很有用:)谢谢!我最近才开始使用C#,所以我甚至不知道标题上有一个C#1快速注释-它没有直接引用事件-它只是直接应用方法组转换,而不是使用委托创建表达式。可能重复@Jon:请随意更改标题,我不知道该放什么:)@Rachel:我把它改成了准确的,但可能不是你想出来的。。。如果你能想出更有用但听起来更准确的东西,那就太好了:)@Jon:lol我从来没有想到过这样的标题。。。。虽然我花了一分钟才明白它说的话,但这是有道理的。
Delegate valid = new RoutedEventHandler(button_Click);
Delegate invalid = button_Click;