Les événements (events) en C#
Dans cette leçon, vous allez déclarer un événement, abonner un gestionnaire et déclencher l'événement lors d'un changement.
Introduction
Un événement (event) permet à un objet de prévenir d'autres objets quand quelque chose se produit, selon le modèle éditeur et abonné (publisher/subscriber). C'est un mécanisme familier en programmation d'interfaces, par exemple quand l'utilisateur clique sur un bouton.
La classe Counter déclare l'événement ThresholdReached. Dans Main, l'opérateur += abonne une lambda pour traiter l'événement. Quand ReachThreshold() est appelée, l'opérateur ?. ne déclenche l'événement que s'il y a au moins un abonné. De l'extérieur, on peut seulement s'abonner ou se désabonner : seule la classe Counter peut déclencher l'événement.
Exemple C# exécutable
using System;
class Counter
{
public event EventHandler? ThresholdReached;
public void ReachThreshold() => ThresholdReached?.Invoke(this, EventArgs.Empty);
}
class Program
{
static void Main()
{
var counter = new Counter();
counter.ThresholdReached += (_, _) => Console.WriteLine("Threshold reached");
counter.ReachThreshold();
}
}
Threshold reachedS'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