在C#中附加\分离事件处理程序的不同方法有什么区别?

时间:2010-12-05 18:33:44

标签: c# events delegates

我的问题分为两部分 -

首先,我们可以通过以下两种方式附加事件处理程序 -

myObject.MyEvent += new EventHandler(MyHandler);

myObject.MyEvent += MyHandler;

根据我的理解,这两者是等价的。在第二种情况下,C#编译器完成从指定方法组的适当重载创建委托实例的工作。它是否正确?

其次,拆分处理程序的两种相应样式之间有什么区别吗?如果是,那么它是什么?

 myObject.MyEvent -= new EventHandler(MyHandler);

 myObject.MyEvent -= MyHandler;

2 个答案:

答案 0 :(得分:5)

它们是相同的,除非你在c#1.2中只有第一次编译。

答案 1 :(得分:4)

正如您所提到的,生成的IL代码没有区别。无论如何,C#编译器都会创建一个处理程序。

在删除中也没有区别。