C# 什么';这两者之间的区别是什么;btn.单击+;=新路线排气阀(按钮点击)“;及;btn.单击+;=按钮单击“;?
在C#中,注册事件处理程序时,有两个选项(C# 什么';这两者之间的区别是什么;btn.单击+;=新路线排气阀(按钮点击)“;及;btn.单击+;=按钮单击“;?,c#,wpf,C#,Wpf,在C#中,注册事件处理程序时,有两个选项(btn类型为System.Windows.Controls.Button): btn.Click+=newroutedeventhandler(按钮单击) 及 btn.单击+=按钮单击 它们之间的语义差异及其含义是什么?据我所知,没有什么,编译器将推断委托类型并自动为您包装它,这只是一种简单的方法(因为谁真的想把它全部打印出来)。没有区别。要了解这些C#特性,您应该阅读C#委托和事件关键字。第一个版本将在所有.Net版本上编译,不会出现错误 第二个版本将
btn
类型为System.Windows.Controls.Button
):
btn.Click+=newroutedeventhandler(按钮单击)
及
btn.单击+=按钮单击
它们之间的语义差异及其含义是什么?据我所知,没有什么,编译器将推断委托类型并自动为您包装它,这只是一种简单的方法(因为谁真的想把它全部打印出来)。没有区别。要了解这些C#特性,您应该阅读C#委托和事件关键字。第一个版本将在所有.Net版本上编译,不会出现错误 第二个版本将仅在.NET2或更高版本上编译 这是唯一的区别。第二个版本只是.NET2中引入的一些语法糖 它被称为方法组转换。详情请参见此处:
(重复的是另一种类型的问题,但它是相同的基本问题。)事实上,我没有找到前面这些带有我的关键字的问题。感谢您指出这一点-我将其标记为重复。基本上,从我刚才提到的内容来看,带有new关键字的语法适用于framework 1.1,如果没有它,它将导致编译器错误,这就是为什么它是intellisense中的默认语法。是的,我记得,因为我倾向于长期使用它。