2011-01-13 8 views
6

Powiel możliwe:
Should I Create a New Delegate Instance?C#: jaka jest różnica między SomeEvent + = metoda i SomeEvent + = new Delegata (metoda)

Witam, Próbowałem szukając odpowiedzi do tego, ale tak naprawdę nie wiesz, jakie wyszukiwane hasła i żadne z sugerowanych witryn nie są istotne. Jestem pewien, że na to wcześniej musiała odpowiedzieć.

Zasadniczo, może ktoś mi powiedzieć jaka jest różnica między tymi dwoma liniami w C#:

SomeEvent += SomeMethod 
SomeEvent += new SomeDelegate(SomeMethod) 

Na przykład:

DataContextChanged += App_DataContextChanged; 
DataContextChanged += new DependencyPropertyChangedEventHandler(App_DataContextChanged); 

Oboje wydają się zrobić to samo.

Odpowiedz

9

Są takie same. Drugi wariant jest skrótem dla pierwszego o nazwie Method group conversion.

Mówiąc krótko, kompilator określa typ delegata za pomocą typu delegata samego zdarzenia. Zostało to wprowadzone w C# 2.0, jeśli się nie mylę.

5

robią to samo. Zmiana była jedynym sposobem zapisania go w C# 1.0, 1.1. Od wersji 2.0 można napisać drugą alternatywę jako uproszczenie.

3

Obie są takie same.

SomeEvent += new SomeDelegate(SomeMethod) 

wspomina o tym, co dzieje się pod maską, np. Konstruktor SomeDelegate jest wywoływany w celu utworzenia instancji obiektu.

Powiązane problemy