Délégués et événements
Apprenez comment les délégués et les événements permettent la communication entre les objets en C#
Délégués et événements est une leçon C# Academy gratuite sur CoddyKit. Ceci est la leçon 5 sur 6. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage C# Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours C# Academy comprend 6 leçons au total.
Délégués et événements
Délégués et événements
Bienvenue dans la prochaine leçon ! Dans cette leçon, vous découvrirez les délégués et les événements en C#, leur utilité et la manière dont ils permettent la programmation événementielle. Commençons !

Qu’est-ce qu’un délégué ?
Qu’est-ce qu’un délégué ?
Un delegate est un type qui représente une référence à une méthode. Il permet de transmettre des méthodes en tant que paramètres et de les invoquer dynamiquement.
Point clé : Les délégués sont essentiels pour implémenter des événements et des fonctions de rappel en C#.
Définir et utiliser des délégués
Définir et utiliser des délégués
Pour définir un délégué, utilisez le mot-clé delegate. Exemple :
using System;
class Program {
// Define a delegate
public delegate void MessageDelegate(string message);
static void DisplayMessage(string message) {
Console.WriteLine(message);
}
static void Main() {
// Create a delegate instance
MessageDelegate msg = DisplayMessage;
// Invoke the delegate
msg("Hello, Delegates!");
}
}
Délégués à multidiffusion
Délégués à multidiffusion
Un seul délégué peut pointer vers plusieurs méthodes, qui seront toutes invoquées dans l’ordre. Exemple :
Conseil : Utilisez les délégués à multidiffusion lorsque plusieurs actions doivent être exécutées.
using System;
class Program {
public delegate void MessageDelegate(string message);
static void ShowMessage(string message) {
Console.WriteLine("Message: " + message);
}
static void LogMessage(string message) {
Console.WriteLine("Log: " + message);
}
static void Main() {
MessageDelegate msg = ShowMessage;
msg += LogMessage; // Add another method
msg("Hello, Multicast Delegates!"); // Both methods are invoked
}
}
Qu’est-ce qu’un événement ?
Qu’est-ce qu’un événement ?
Un événement est un mécanisme qui permet à une classe d’informer d’autres classes ou objets lorsqu’un événement intéressant se produit. Les événements reposent sur les délégués.
Point clé : Les événements permettent un couplage faible entre les éditeurs et les abonnés dans la programmation événementielle.
Définir et utiliser des événements
Définir et utiliser des événements
Pour définir un événement, utilisez le mot-clé event avec un type de délégué. Exemple :
Point clé : Les événements permettent de créer des systèmes réactifs et événementiels.
using System;
class Publisher {
public delegate void NotifyDelegate(string message);
public event NotifyDelegate Notify; // Define an event
public void RaiseEvent(string message) {
Notify?.Invoke(message); // Invoke the event
}
}
class Subscriber {
public void OnNotify(string message) {
Console.WriteLine("Subscriber received: " + message);
}
}
class Program {
static void Main() {
Publisher pub = new Publisher();
Subscriber sub = new Subscriber();
pub.Notify += sub.OnNotify; // Subscribe to the event
pub.RaiseEvent("Hello, Events!"); // Raise the event
}
}
Se désabonner des événements
Se désabonner des événements
Les abonnés peuvent se désabonner des événements en utilisant l’opérateur -=` opérateur. Exemple :
Conseil : Désabonnez-vous toujours des événements afin d’éviter les fuites de mémoire.
using System;
class Publisher {
public delegate void NotifyDelegate(string message);
public event NotifyDelegate Notify;
public void RaiseEvent(string message) {
Notify?.Invoke(message);
}
}
class Subscriber {
public void OnNotify(string message) {
Console.WriteLine("Subscriber received: " + message);
}
}
class Program {
static void Main() {
Publisher pub = new Publisher();
Subscriber sub = new Subscriber();
pub.Notify += sub.OnNotify; // Subscribe
pub.RaiseEvent("First Message");
pub.Notify -= sub.OnNotify; // Unsubscribe
pub.RaiseEvent("Second Message"); // No output, as subscriber is removed
}
}
Exercice pratique
Exercice pratique
Créez un délégué CalculationDelegate pour les opérations arithmétiques et un événement OnCalculate. Écrivez un programme qui déclenche l’événement et effectue des calculs. Exemple :
using System;
class Calculator {
public delegate void CalculationDelegate(double result);
public event CalculationDelegate OnCalculate;
public void Add(double a, double b) {
double result = a + b;
OnCalculate?.Invoke(result);
}
}
class Program {
static void Main() {
Calculator calc = new Calculator();
// Subscribe to the event
calc.OnCalculate += result => Console.WriteLine("Result: " + result);
calc.Add(5, 3); // Outputs: Result: 8
}
}
Bravo !
Bravo !
Félicitations ! Vous avez appris à utiliser les délégués et les événements pour créer des programmes dynamiques et événementiels. Dans la prochaine leçon, nous découvrirons l’utilisation de collections telles que les listes, les dictionnaires et les files d’attente. Continuons à coder !

Questions Fréquemment Posées
La leçon « Délégués et événements » est-elle gratuite ?
Oui — le texte complet de « Délégués et événements » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours C# Academy, passe à CoddyKit PRO. Le cours C# Academy comprend 6 leçons au total.
Qu'est-ce que j'apprendrai dans « Délégués et événements » ?
Apprenez comment les délégués et les événements permettent la communication entre les objets en C# Tu pratiques C# Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer C# Academy ?
Aucune expérience préalable n'est requise. C# Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 5 sur 6.
Combien de temps prend la leçon « Délégués et événements » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon C# Academy ?
Oui. Chaque leçon C# Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Introduction aux interfaces
- Classes abstraites
- Membres et méthodes statiques
- Découvrir les énumérations et les structures
- Délégués et événements
- Manipuler les collections : listes, dictionnaires et files