2011-01-14 51 views
3

我想知道有什麼不同委託創建表達式與方法組轉換有什麼區別?

button.Click += new RoutedEventHandler(button_Click); 

button.Click += button_Click; 

之間我見過雙方一般採用第二版,但我想知道有什麼不同,以及何時使用一個另一方面。

+0

有關標題的快速註釋 - 它不直接引用*事件*它直接應用*方法組轉換*而不是使用委託創建表達式。 – 2011-01-14 15:51:44

+0

可能重複的[我應該創建一個新的委託實例?](http://stackoverflow.com/questions/3585793/should-i-create-a-new-delegate-instance) – 2011-01-14 15:51:50

回答

5

沒有什麼區別,除了第一個在C#1中有效,第二個不是。

另一方面,只是RHS表達式的差異。例如:

Delegate valid = new RoutedEventHandler(button_Click); 
Delegate invalid = button_Click; 

在後一種情況下,編譯器不知道你要的方法組轉換成其委託,所以你會得到一個編譯時失敗。

相關問題