0Pricing
C# Academy · Leçon

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 !

Délégués et événements — illustration 1

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 !

Délégués et événements — illustration 10

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

  1. Introduction aux interfaces
  2. Classes abstraites
  3. Membres et méthodes statiques
  4. Découvrir les énumérations et les structures
  5. Délégués et événements
  6. Manipuler les collections : listes, dictionnaires et files
← Retour à C# Academy