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

Unm*_*kar 3 c# events delegates

我的问题分为两部分 -

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

myObject.MyEvent += new EventHandler(MyHandler);

myObject.MyEvent += MyHandler;
Run Code Online (Sandbox Code Playgroud)

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

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

 myObject.MyEvent -= new EventHandler(MyHandler);

 myObject.MyEvent -= MyHandler;
Run Code Online (Sandbox Code Playgroud)

Mar*_*ell 5

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