2009-08-20 347 views
38

是這樣的:刪除事件處理程序

Button.Click -= new EventHandler(Button_Click); 

與此相同:

Button.Click -= Button_Click; 

我問,因爲對我來說,似乎前者是消除新的引用的方法,而後者一個是刪除一個方法本身。但是再一次,也許新的EventHandler部分隱含在+ =或 - =重載中,以防程序員沒有像這樣明確地指定它?

如果它是不同的怎麼樣

Button.Click -= new EventHandler(Button_Click); 

VS

Button.Click -= Button_Click; 

感謝。

回答

45

這是一樣的。第二個是用於第一僅僅語法糖,和相等比較被適當地重載委託類型:相同類型的具有相同的目標,方法和調用列表

兩名代表被認爲是相等的。

來源:MSDN, Delegate.Equality Operator

+0

感謝您的回答。 – Carlo 2009-08-20 17:19:59

0

最終的結果是相同的。編譯器會自動推斷委託類型,因此不需要新操作員創建它。