Подтвердить что ты не робот

С#: Разница между '+ = anEvent' и '+ = new EventHandler (anEvent)'

Возьмите приведенный ниже код:

private void anEvent(object sender, EventArgs e) {
    //some code
}

В чем разница между следующими?

[object].[event] += anEvent;

//and

[object].[event] += new EventHandler(anEvent);

[ОБНОВЛЕНИЕ]

По-видимому, нет никакой разницы между двумя... первый - это просто синтаксический сахар последнего.

4b9b3361

Ответ 1

Нет никакой разницы. В первом примере компилятор автоматически выведет делегата, который вы хотите создать. Во втором примере вы явно определяете делегат.

В С# 2.0 добавлен вывод делегата. Поэтому для проектов С# 1.0 вторым вариантом был ваш единственный вариант. Для проектов 2.0 первый пример с использованием вывода - это то, что я бы предпочел использовать и видеть в кодовой базе - поскольку он более краткий.

Ответ 2

[object].[event] += anEvent;

- это просто синтаксический сахар для -

[object].[event] += new EventHandler(anEvent);

Ответ 3

Я не думаю, что есть разница. Компилятор преобразует первую во вторую.