首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"btn.Click += new RoutedEventHandler (ButtonClick)“和"btn.Click += ButtonClick”有什么区别?

"btn.Click += new RoutedEventHandler (ButtonClick)“和"btn.Click += ButtonClick”有什么区别?
EN

Stack Overflow用户
提问于 2013-06-18 17:11:43
回答 3查看 2.9K关注 0票数 5

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

btn.Click += new RoutedEventHandler (ButtonClick)

btn.Click += ButtonClick

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-06-18 17:21:33

第一个版本可以在所有版本的.Net上正确编译。

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

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

这就是所谓的方法组转换。详细信息请参见此处:

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

票数 7
EN

Stack Overflow用户

发布于 2013-06-18 17:12:33

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

票数 3
EN

Stack Overflow用户

发布于 2013-06-18 17:18:59

这是没有区别的。要了解这些事件功能,您应该阅读C# C# event关键字。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17164938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档