我的问题分为两部分 -
首先,我们可以通过以下两种方式附加事件处理程序 -
myObject.MyEvent += new EventHandler(MyHandler);
myObject.MyEvent += MyHandler;
根据我的理解,这两者是等价的。在第二种情况下,C#编译器完成从指定方法组的适当重载创建委托实例的工作。它是否正确?
其次,拆分处理程序的两种相应样式之间有什么区别吗?如果是,那么它是什么?
myObject.MyEvent -= new EventHandler(MyHandler);
myObject.MyEvent -= MyHandler;
答案 0 :(得分:5)
它们是相同的,除非你在c#1.2中只有第一次编译。
答案 1 :(得分:4)
正如您所提到的,生成的IL代码没有区别。无论如何,C#编译器都会创建一个处理程序。
在删除中也没有区别。