2010-12-05 18 views
3

有兩個部分,以我的問題 -是什麼附加在C#中分離的事件處理程序的不同方式之間的差別

首先,我們可以在以下兩種方式連接的事件處理程序 -

myObject.MyEvent += new EventHandler(MyHandler); 

myObject.MyEvent += MyHandler; 

按我理解這兩個是相同的。在第二種情況下,C#編譯器執行從指定方法組的適當重載創建委託實例的工作。它是否正確?

其次,分離處理程序的兩種相應風格之間是否有區別?如果是,那麼它是什麼?

myObject.MyEvent -= new EventHandler(MyHandler); 

myObject.MyEvent -= MyHandler; 

回答

4

生成的IL代碼沒有區別 - 正如您所提到的那樣。無論如何C#編譯器會創建一個處理程序

在去除中也沒有區別。

5

它們是相同的,除非你在只有第一次編譯的c#1.2中。

相關問題