No es posible desencadenar un evento en C# que no tiene controladores asociados. Entonces, antes de cada llamada, es necesario verificar si el evento es nulo.Crear controladores de eventos C# vacíos automáticamente
if (MyEvent != null) {
MyEvent(param1, param2);
}
Me gustaría mantener mi código lo más limpio posible y deshacerme de esos controles nulos. No creo que afecte mucho el rendimiento, al menos no en mi caso.
MyEvent(param1, param2);
Ahora resuelvo esto agregando manualmente un controlador en línea vacío para cada evento. Esta es propenso a errores, ya que necesito recordar a hacer eso etc.
void Initialize() {
MyEvent += new MyEvent((p1,p2) => { });
}
¿Hay una manera de generar manipuladores vacíos para todos los eventos de una clase dada de forma automática mediante la reflexión y un poco de magia CLR?
el truco en la respuesta aceptada evitará tener que comprobar la nula pero no será asegurar safty hilo. mira aquí: http://stackoverflow.com/questions/1131184/c-initializing-an-event-handler-with-a-dummy/1131204#1131204 –