Почему это событие объявляется с анонимным делегатом?

Я видел, что люди определяют свои события как это:

public event EventHandler<EventArgs> MyEvent = delegate{};

Кто-то может объяснить, как это отличается от определения его без него? Это должно постараться не проверять на пустой указатель при генерировании события?

6
задан Randy supports Monica 10 June 2010 в 02:58
поделиться

2 ответа

Вы поняли - добавление пустого делегата позволяет избежать этого:

public void DoSomething() { 
    if (MyEvent != null) // Unnecessary! 
        MyEvent(this, "foo"); 
} 
10
ответ дан 9 December 2019 в 20:40
поделиться

Это объявление гарантирует, что MyEvent никогда не будет нулевым, что устраняет утомительную и подверженную ошибкам задачу проверки на нулевое значение каждый раз за счет выполнения дополнительного пустого делегата каждый раз при запуске события. .

2
ответ дан 9 December 2019 в 20:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: