2009-08-20 20 views
38

to:Usuwanie obsługi zdarzeń

Button.Click -= new EventHandler(Button_Click); 

taki sam jak ten:

Button.Click -= Button_Click; 

Pytam, ponieważ wydaje mi się, że były to usunięcie nowe odniesienie do metody, a ostatni jednym jest usunięcie samej metody. Ale może znowu nowa część EventHandler jest ukryta w + = lub - = przeciążeniu w przypadku, gdy programista nie przypisuje tego w sposób jawny?

W przypadku jest inaczej jak o

Button.Click -= new EventHandler(Button_Click); 

VS

Button.Click -= Button_Click; 

Dzięki.

Odpowiedz

45

To jest to samo. Drugi to cukier syntaktyczny jedynie dla pierwszego i porównanie równość jest przeciążony odpowiednio dla typów delegatów:

Dwóch delegatów tego samego typu o tych samych celów, metod i list wywołania są uznawane za równe.

Źródło: MSDN, Delegate.Equality Operator

+0

Dzięki za odpowiedź. – Carlo

0

Efekt końcowy jest taki sam. Kompilator automatycznie wnioskuje o typ delegata, co powoduje, że nowy operator nie musi go tworzyć.

Powiązane problemy