Проводка EventHandlers - PullRequest
6 голосов
/ 27 мая 2011

Есть ли разница между

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

И

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

?Если да, то что?

Разве они не просто указатели на методы?

Ответы [ 2 ]

6 голосов
/ 27 мая 2011

Оба абсолютно одинаковы. Но

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

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

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

Посмотрите больше на Тип вывода . поиск "Вывод типа"

2 голосов
/ 27 мая 2011

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

Смотрите этот вопрос по теме:

Разница между событиями подключения с использованием "нового EventHandler " и без использования нового EventHandler "?

...