Exercices C#

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

C#
Exécuter le code →
Program.cs
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");
    }
}
Résultat de l’exécution
Shipped

S'entraîner avec le débogueur

Placez un point d'arrêt sur une affectation ou une condition importante, cliquez sur Debug et inspectez les valeurs locales avant de passer à la ligne suivante.

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