En C#, un délégué (`Delegate`) est un type de données qui représente des références à des méthodes. Il permet de passer des méthodes en tant que paramètres, de les stocker dans des collections et de les invoquer de manière asynchrone. Les délégués sont utilisés principalement pour la mise en œuvre de la programmation basée sur les événements et la gestion des rappels.
Un délégué multicast est un délégué qui peut avoir plusieurs méthodes associées. Cela signifie qu'un seul délégué peut être utilisé pour appeler plusieurs méthodes simultanément. Cela est particulièrement utile dans les scénarios d'événements où plusieurs gestionnaires d'événements peuvent être associés au même événement.
**Exemple de délégué simple :**
```csharp
// Définition d'un délégué
delegate void SimpleDelegate(string message);
class Program
{
static void Main()
{
// Instanciation du délégué avec une méthode
SimpleDelegate delegateInstance = new SimpleDelegate(DisplayMessage);
// Invocation du délégué
delegateInstance("Hello, world!");
}
static void DisplayMessage(string message)
{
Console.WriteLine(message);
}
}
```
**Exemple de délégué multicast :**
```csharp
// Délégué multicast
delegate void MultiCastDelegate(string message);
class Program
{
static void Main()
{
// Instanciation du délégué multicast avec plusieurs méthodes
MultiCastDelegate multiDelegate = DisplayMessage1;
multiDelegate += DisplayMessage2;
multiDelegate += DisplayMessage3;
// Invocation du délégué multicast (appellera toutes les méthodes associées)
multiDelegate("Hello, world!");
}
static void DisplayMessage1(string message)
{
Console.WriteLine($"Method 1: {message}");
}
static void DisplayMessage2(string message)
{
Console.WriteLine($"Method 2: {message}");
}
static void DisplayMessage3(string message)
{
Console.WriteLine($"Method 3: {message}");
}
}
```
Dans cet exemple, `MultiCastDelegate` est un délégué multicast capable de stocker plusieurs méthodes. Lorsqu'il est invoqué, toutes les méthodes associées au délégué sont appelées en séquence. Cela est utile pour implémenter des scénarios où plusieurs gestionnaires d'événements doivent être notifiés lorsqu'un événement se produit.
Aucun commentaire:
Enregistrer un commentaire