Comment déclencher des événements hérités en C#
En C#, les événements peuvent être déclarés dans les classes de base et accessibles par les classes dérivées. Cependant, déclencher des événements dans des classes héritées nécessite une gestion spécifique.
Problème :
Lorsque vous tentez de déclencher un événement hérité d'une classe de base, vous pouvez rencontrer une erreur indiquant que l'événement ne peut apparaître qu'à gauche du = ou du -= opérateurs.
Solution :
Pour déclencher des événements hérités, vous devez créer des méthodes protégées dans la classe de base qui peuvent être utilisées pour invoquer les événements. Ces méthodes doivent suivre la convention de dénomination « OnEventName ».
Par exemple, considérons la classe de base suivante :
public class BaseClass { public event EventHandler Loading; public event EventHandler Finished; }
Méthodes de déclenchement d'événements protégés :
Dans la classe de base, créez des méthodes protégées comme les suivantes :
protected virtual void OnLoading(EventArgs e) { EventHandler handler = Loading; if (handler != null) { handler(this, e); } } protected virtual void OnFinished(EventArgs e) { EventHandler handler = Finished; if (handler != null) { handler(this, e); } }
Raising Événements dans la classe dérivée :
Dans la classe dérivée, appelez les méthodes protégées pour déclencher les événements :
public class DerivedClass : BaseClass { public void DoSomething() { ... OnLoading(EventArgs.Empty); ... OnFinished(EventArgs.Empty); } }
Remarque :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!