Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.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# 什么';这两者之间的区别是什么;btn.单击+;=新路线排气阀(按钮点击)“;及;btn.单击+;=按钮单击“;?_C#_Wpf - Fatal编程技术网

C# 什么';这两者之间的区别是什么;btn.单击+;=新路线排气阀(按钮点击)“;及;btn.单击+;=按钮单击“;?

C# 什么';这两者之间的区别是什么;btn.单击+;=新路线排气阀(按钮点击)“;及;btn.单击+;=按钮单击“;?,c#,wpf,C#,Wpf,在C#中,注册事件处理程序时,有两个选项(btn类型为System.Windows.Controls.Button): btn.Click+=newroutedeventhandler(按钮单击) 及 btn.单击+=按钮单击 它们之间的语义差异及其含义是什么?据我所知,没有什么,编译器将推断委托类型并自动为您包装它,这只是一种简单的方法(因为谁真的想把它全部打印出来)。没有区别。要了解这些C#特性,您应该阅读C#委托和事件关键字。第一个版本将在所有.Net版本上编译,不会出现错误 第二个版本将

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

btn.Click+=newroutedeventhandler(按钮单击)

btn.单击+=按钮单击


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

据我所知,没有什么,编译器将推断委托类型并自动为您包装它,这只是一种简单的方法(因为谁真的想把它全部打印出来)。

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

第一个版本将在所有.Net版本上编译,不会出现错误

第二个版本将仅在.NET2或更高版本上编译

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

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


(重复的是另一种类型的问题,但它是相同的基本问题。)事实上,我没有找到前面这些带有我的关键字的问题。感谢您指出这一点-我将其标记为重复。基本上,从我刚才提到的内容来看,带有new关键字的语法适用于framework 1.1,如果没有它,它将导致编译器错误,这就是为什么它是intellisense中的默认语法。是的,我记得,因为我倾向于长期使用它。