2009-08-20 299 views
38

是这样的:删除事件处理程序

Button.Click -= new EventHandler(Button_Click); 

与此相同:

Button.Click -= Button_Click; 

我问,因为对我来说,似乎前者是消除新的引用的方法,而后者一个是删除一个方法本身。但是再一次,也许新的EventHandler部分隐含在+ =或 - =重载中,以防程序员没有像这样明确地指定它?

如果它是不同的怎么样

Button.Click -= new EventHandler(Button_Click); 

VS

Button.Click -= Button_Click; 

感谢。

回答

45

这是一样的。第二个是用于第一仅仅语法糖,和相等比较被适当地重载委托类型:相同类型的具有相同的目标,方法和调用列表

两名代表被认为是相等的。

来源:MSDN, Delegate.Equality Operator

+0

感谢您的回答。 – Carlo 2009-08-20 17:19:59

0

最终的结果是相同的。编译器会自动推断委托类型,因此不需要新操作员创建它。