Acabo de encontrar un error en el programa que estoy escribiendo donde se lanzó una excepción que indica que "la referencia del objeto debe establecerse en una instancia de un objeto". Tras la investigación, descubrí que esta excepción se produjo al intentar activar un evento PERO el evento no tenía ningún método delegado.Disparar un evento en C# sin métodos de delegado adjuntos?
Quería asegurarme de que entendí que, como desarrollador, no debe desencadenar eventos sin antes comprobar que el evento no es igual a nulo? Por ejemplo:
if (this.MyEventThatIWantToFire != null)
{
this.MyEventThatIWantToFire();
}
Gracias de antemano por los consejos/ideas.
Estás en lo correcto. – e36M3
Sí, tu comprensión es correcta. – btlog
Además, en una aplicación multiproceso, almacenaría 'this.MyEventThatIWantToFire' en una variable temporal antes de verificar y, finalmente, elevarlo para evitar que se desenganchen los eventos entre su cheque y su aumento. – deepee1