С#: Разница между '+ = anEvent' и '+ = new EventHandler (anEvent)'
Возьмите приведенный ниже код:
private void anEvent(object sender, EventArgs e) {
//some code
}
В чем разница между следующими?
[object].[event] += anEvent;
//and
[object].[event] += new EventHandler(anEvent);
[ОБНОВЛЕНИЕ]
По-видимому, нет никакой разницы между двумя... первый - это просто синтаксический сахар последнего.
Ответы
Ответ 1
Нет никакой разницы. В первом примере компилятор автоматически выведет делегата, который вы хотите создать. Во втором примере вы явно определяете делегат.
В С# 2.0 добавлен вывод делегата. Поэтому для проектов С# 1.0 вторым вариантом был ваш единственный вариант. Для проектов 2.0 первый пример с использованием вывода - это то, что я бы предпочел использовать и видеть в кодовой базе - поскольку он более краткий.
Ответ 2
[object].[event] += anEvent;
- это просто синтаксический сахар для -
[object].[event] += new EventHandler(anEvent);
Ответ 3
Я не думаю, что есть разница. Компилятор преобразует первую во вторую.