Для обработки события я использую код, приведенный ниже:
obj.Evt += new EvtEventHandler(DoEvt);
или
obj.Evt += DoEvt;
даст тот же результат;
Итак ... Пожалуйста, скажите мне, какой я должен выбрать! И почему?
Это не имеет значения.За кулисами оба пути одинаковы (компилятор генерирует один и тот же код).См. «13.6 Преобразование групп методов» в спецификации ECMA C # (ее можно прочитать здесь ).
Если предположить, что Evt напечатано как EvtEventHandler, то нет никакой разницы (если вы не используете C # 1.2, где существует только первое).
Evt
EvtEventHandler
Используйте все, что захотите.
Да, они дают одинаковый результат.однако, если вы используете 1.0 или 1.1, вы должны указать EvtEventHandler, для более поздних версий 2.0 и выше вы можете избавиться от него.
1.0
1.1
2.0
Для ИЛ они одинаковы,
IL_0020: newobj instance void [mscorlib]System.EventHandler::.ctor(object, native int) IL_0025: callvirt instance void ConsoleApplication15.A::DoEvt(class [mscorlib]System.EventHandler)
Но я думаю, что первое имеет смысл для поддержки вашего кода.