Il n'est pas possible de déclencher un événement en C# qui n'a pas de gestionnaires attaché à elle. Donc, avant chaque appel, il est nécessaire de vérifier si l'événement est nulle.
if ( MyEvent != null ) {
MyEvent( param1, param2 );
}
Je tiens à garder mon code aussi propre que possible et de se débarrasser de ceux null contrôles. Je ne pense pas que cela affectera les performances très bien, au moins pas dans mon cas.
MyEvent( param1, param2 );
Droit maintenant, je résoudre ce problème en ajoutant un vide inline gestionnaire pour chaque événement manuellement. C'est sujette aux erreurs, car j'ai besoin de vous rappeler de le faire.
void Initialize() {
MyEvent += new MyEvent( (p1,p2) => { } );
}
Est-il un moyen de générer du vide des gestionnaires pour tous les événements d'une classe donnée automatiquement à l'aide de la réflexion et de certains CLR de la magie?