2011-05-27 3 views
6

Есть ли разница междуЭлектропроводка EventHandlers

Object.Event += new System.EventHandler(EventHandler); 
Object.Event -= new System.EventHandler(EventHandler); 

И

Object.Event += EventHandler; 
Object.Event -= EventHandler; 

? Если да, то?

Разве они оба не указывают на методы?

+0

Возможный дубликат [C# Event handlers] (http://stackoverflow.com/questions/26877/c-sharp-event-handlers) – nawfal

ответ

6

И точно такие же. Но

Object.Event += EventHandler; 
Object.Event -= EventHandler; 

В приведенном выше примере отлично компилируется только в версии 3.0 или более поздней версии C#, а если вы в 2,0 или до вы можете использовать только следующую конструкцию.

Object.Event += new System.EventHandler(EventHandler); 
Object.Event -= new System.EventHandler(EventHandler); 

Подробнее о: Type inferencing. поиск по «Type Inference»

+0

Женщина, которая знает, какой тип вызывается? О боже, пожалуйста ... Выходи за меня замуж? :-P lol –

2

Нет, они точно такие же. Вторая версия является чисто сокращением, когда компилятор создает для вас экземпляр обработчика событий. Так же, как упрощенный синтаксис свойств, использование и т. Д. ... все магии компилятора!

Смотрите этот родственный вопрос:

Difference between wiring events using "new EventHandler<T>" and not using new EventHandler<T>"?

Смежные вопросы