繁体   English   中英

删除事件处理程序

[英]Removing event handlers

这是:

Button.Click -= new EventHandler(Button_Click);

与此相同:

Button.Click -= Button_Click;

我问,因为对我来说,似乎前者正在删除对方法的新引用,而后者正在删除方法本身。 但话说回来,如果程序员没有明确地分配它,那么新的EventHandler部分可能隐含在+ =或 - =重载中?

万一它是不同的如何

Button.Click -= new EventHandler(Button_Click);

VS

Button.Click -= Button_Click;

谢谢。

这是相同的。 第二个只是第一个的语法糖,并且对于委托类型适当地重载了相等比较:

具有相同目标,方法和调用列表的两个相同类型的委托被认为是相等的。

来源: MSDN,Delegate.Equality运营商

最终结果是一样的。 编译器会自动推断委托的类型,因此不需要新的运算符来创建委托。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM