Невозможно запустить событие на C#, на котором нет обработчиков. Поэтому перед каждым вызовом необходимо проверить, является ли событие нулевым.Автоматически создавать пустые обработчики событий C#
if (MyEvent != null) {
MyEvent(param1, param2);
}
Я хотел бы сохранить мой код как можно более чистым и избавиться от этих нулевых проверок. Я не думаю, что это сильно повлияет на производительность, по крайней мере, не в моем случае.
MyEvent(param1, param2);
Прямо сейчас я решаю это, добавив пустой проводник для каждого события вручную. Это ошибки, так как мне нужно помнить, чтобы сделать это и т.д.
void Initialize() {
MyEvent += new MyEvent((p1,p2) => { });
}
Есть ли способ, чтобы генерировать пустые обработчик для всех событий данного класса автоматически, используя отражение и некоторые CLR магии?
трюк в принятом ответе будет избежать необходимости проверять нуль, но не обеспечит нить Сафти. см. здесь: http://stackoverflow.com/questions/1131184/c-initializing-an-event-handler-with-a-dummy/1131204#1131204 – 2010-04-14 21:41:19