Le modèle éditeur et abonné avec les événements en C#
Dans cette leçon, vous allez prévenir les objets abonnés chaque fois que l'état d'une commande change, grâce aux événements.
Introduction
Les événements permettent à l'extérieur de s'abonner pour recevoir des notifications, mais seule la classe qui possède l'événement a le droit de le déclencher. C'est la façon sûre d'implémenter le modèle éditeur et abonné en C#.
La classe Order déclare l'événement StatusChanged de type EventHandler<string>, c'est-à-dire accompagné d'une chaîne décrivant le nouvel état. Dans Main, une lambda s'abonne pour afficher l'état à l'écran. Quand Update("Shipped") est appelée, l'opérateur ?. ne déclenche l'événement que s'il y a des abonnés, le programme affiche donc Shipped.
Exemple C# exécutable
using System;
class Order
{
public event EventHandler<string>? StatusChanged;
public void Update(string status) => StatusChanged?.Invoke(this, status);
}
class Program
{
static void Main()
{
var order = new Order();
order.StatusChanged += (_, status) => Console.WriteLine(status);
order.Update("Shipped");
}
}
ShippedS'entraîner avec le débogueur
S'entraîner avec un défi
Utilisez le contenu de cette leçon pour résoudre un vrai problème. Chaque défi s'exécute dans le navigateur, avec des tests instantanés et une revue par l'IA.
Tous les défis