Невозможно запустить событие на С#, у которого нет связанных с ним обработчиков. Поэтому перед каждым вызовом необходимо проверить, является ли событие нулевым.
if ( MyEvent != null ) {
MyEvent( param1, param2 );
}
Я хотел бы сохранить мой код как можно более чистым и избавиться от этих нулевых проверок. Я не думаю, что это сильно повлияет на производительность, по крайней мере, не в моем случае.
MyEvent( param1, param2 );
В настоящее время я решаю это, добавляя пустой проводник для каждого события вручную. Это склонно к ошибкам, так как мне нужно помнить об этом и т.д.
void Initialize() {
MyEvent += new MyEvent( (p1,p2) => { } );
}
Есть ли способ генерировать пустые обработчики для всех событий данного класса, автоматически используя отражение и некоторую магию CLR?