Sobes.tech
Junior — Middle

Spiega cos'è un delegato multicast e come funziona nel contesto dei delegati .NET.

sobes.tech AI

Risposta dell'AI

Il delegato multicast in .NET è un delegato che può memorizzare riferimenti a più metodi e chiamarli sequenzialmente quando viene invocato.

Quando si aggiungono più metodi a un delegato (tramite l'operatore +=), viene creata una catena di chiamate. Quando si invoca tale delegato, tutti i metodi di questa catena vengono chiamati in ordine.

Esempio:

public delegate void Notify(string message);

Notify notifyHandlers = null;

void Handler1(string msg) => Console.WriteLine("Handler1: " + msg);
void Handler2(string msg) => Console.WriteLine("Handler2: " + msg);

notifyHandlers += Handler1;
notifyHandlers += Handler2;

notifyHandlers("Ciao");

L'output sarà:

Handler1: Ciao
Handler2: Ciao

In questo modo, i delegati multicast sono utili per implementare eventi e callback, quando si desidera notificare più sottoscrittori.