Что произойдет, если между моментом, когда вы проверите, если MyEvent имеет значение null, и вы запустите MyEvent, появится другой поток и отменит подписку на событие?
ти, я видел, что это часто используется:
public event MyEventHandler MyEvent;
private void SomeFunction()
{
MyEventHandler handler = this.MyEvent;
if (handler != null)
{
handler(this, new MyEventArgs());
}
}
Когда это можно так же легко сделать так:
public event MyEventHandler MyEvent;
private void SomeFunction()
{
if (MyEvent != null)
{
MyEvent(this, new MyEventArgs());
}
}
Итак, я что-то упустил? Есть ли какая-то причина, по которой люди назначают событие обработчику, а затем поднимают обработчик вместо самого события? Это просто "лучшая практика"?