删除事件处理程序

这是:

Button.Click -= new EventHandler(Button_Click); 

就像这样:

 Button.Click -= Button_Click; 

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

如果不一样的话

 Button.Click -= new EventHandler(Button_Click); 

VS

 Button.Click -= Button_Click; 

谢谢。

这是相同的。 第二个仅仅是第一个语法糖,平等比较适合于委托types重载:

具有相同目标,方法和调用列表的两个相同types的代表被认为是相同的。

来源: MSDN,Delegate.Equality运算符

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