C# - Événements
Événements sont des actions de l'utilisateur telles qu'une pression sur une touche, des clics, des mouvements de souris, etc., ou une occurrence telle que des notifications générées par le système. Les applications doivent répondre aux événements lorsqu'ils se produisent. Par exemple, les interruptions. Les événements sont utilisés pour la communication inter-processus.
Utiliser des délégués avec des événements
Les événements sont déclarés et déclenchés dans une classe et associés aux gestionnaires d'événements à l'aide de délégués au sein de la même classe ou d'une autre classe. La classe contenant l'événement est utilisée pour publier l'événement. C'est ce qu'on appelle l'éditeur classer. Une autre classe qui accepte cet événement est appelée abonné classer. Les événements utilisent le éditeur-abonné modèle.
Un éditeur est un objet qui contient la définition de l'événement et du délégué. L'association événement-délégué est également définie dans cet objet. Un objet de classe d'éditeur invoque l'événement et il est notifié aux autres objets.
Un abonné est un objet qui accepte l'événement et fournit un gestionnaire d'événement. Le délégué dans la classe de l'éditeur appelle la méthode (gestionnaire d'événements) de la classe de l'abonné.
Déclarer des événements
Pour déclarer un événement à l'intérieur d'une classe, vous devez tout d'abord déclarer un type délégué pour le pair comme :
public delegate string BoilerLogHandler(string str);
puis, déclarez l'événement en utilisant event mot-clé −
event BoilerLogHandler BoilerEventLog;
Le code précédent définit un délégué nommé BoilerLogHandler et un événement nommé BoilerEventLog , qui appelle le délégué lorsqu'il est déclenché.
Exemple
Démo en directusing System; namespace SampleApp { public delegate string MyDel(string str); class EventProgram { event MyDel MyEvent; public EventProgram() { this.MyEvent += new MyDel(this.WelcomeUser); } public string WelcomeUser(string username) { return "Welcome " + username; } static void Main(string[] args) { EventProgram obj1 = new EventProgram(); string result = obj1.MyEvent("Tutorials Point"); Console.WriteLine(result); } } }
Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant −
Welcome Tutorials Point
Langue C