Sobes.tech
Junior — Middle

Explicați ce este un multicast delegate și cum funcționează în contextul delegate-urilor .NET.

sobes.tech AI

Răspuns de la AI

Delegatul multicast în .NET este un delegat care poate stoca referințe la mai multe metode și le poate apela secvențial atunci când este invocat delegatul.

Când adăugați mai multe metode la un delegat (prin operatorul +=), se creează un lanț de apeluri. Când se invocă acest delegat, toate metodele din acest lanț vor fi apelate în ordine.

Exemplu:

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("Salut");

Ieșirea va fi:

Handler1: Salut
Handler2: Salut

Astfel, delegații multicast sunt utili pentru implementarea evenimentelor și callback-urilor, atunci când trebuie să notifici mai mulți abonați.