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

我的问题分为两部分 –

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

myObject.MyEvent += new EventHandler(MyHandler); myObject.MyEvent += MyHandler; 

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

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

  myObject.MyEvent -= new EventHandler(MyHandler); myObject.MyEvent -= MyHandler; 

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

在删除中也没有区别。

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