Я столкнулся с этим вопросом в Microsoft Practice Test, и я запутался. Вот вопрос:
Какой из следующих примеров кода С# это правильный способ поднять событие, предполагая, что событие Alarm, Класс AlarmEventArgs и Делегат AlarmEventHandler был объявили?
Вот "правильный" ответ, который они предоставили:
AlarmEventArgs e = new AlarmEventArgs(1, 2);
AlarmEventHandler handler = Alarm;
if (handler != null)
{
handler(this, e);
}
Однако есть и другой ответ, который кажется правильным.
AlarmEventArgs e = new AlarmEventArgs(1, 2);
if (Alarm!= null)
{
Alarm (this, e);
}
Я лично, всегда использую второй метод. Он работает отлично. Может кто-нибудь скажет мне, почему я должен использовать первый метод вместо второго?