Les événements en C#

Les événements sont des actions effectuer par l’utilisateur telles que le clic, le mouvement de souris, etc., ou des événements tels que des notifications générées par le système. Les applications doivent réagir aux événements lorsqu’ils se produisent. Par exemple, les interruptions. Les événements sont utilisés pour la communication inter-processus.
 
Les délégués en C#

L’utilisation de 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. Ceci s’appelle la classe « publisher ». Une autre classe qui accepte cet événement est appelée la classe « subscriber ». Les événements utilisent le modèle publisher-subscriber.

Publisher est un objet contenant 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 la classe « publisher » appelle l’événement et il est notifié à d’autres objets.

Subscriber est un objet qui accepte l’événement et fournit un gestionnaire d’événements. Le délégué de la classe « publisher » appelle la méthode de la classe « subscriber ».
 

Déclarer des événements

Pour déclarer un événement dans une classe, vous devez d’abord déclarer un type de délégué pour l’événement. Par exemple :

public delegate string MyDelegate(string str);

Ensuite, l’événement est déclaré à l’aide du mot-clé event :

event MyDelegate MyEvent;

 
 

Exemple :
using System;

namespace WayToLearnX {
   public delegate string MyDelegate(string str);
	
   public class EventApp {
      event MyDelegate MyEvent;
		
      public EventApp() {
         this.MyEvent += new MyDelegate(this.msg);
      }
      public string msg(string username) {
         return "Welcome to " + username;
      }
      public static void Main(string[] args) {
         EventApp e = new EventApp();
         string str = e.MyEvent("WayToLearnX!");
         Console.WriteLine(str);
      }
   }
}

La sortie :

Welcome to WayToLearnX!
qcm-csharp

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *