Sobes.tech
Junior — Middle

Magyarázza el, mi az a multicast delegate, és hogyan működik a .NET delegate-ek kontextusában?

sobes.tech MI

Válasz az MI-től

A multicast-delegate a .NET-ben olyan delegate, amely több módszerre mutató hivatkozásokat tárolhat, és ezek hívásakor sorban végrehajtja azokat.

Amikor több módszert adunk hozzá egy delegate-hez (+= operátorral), egy hívási lánc jön létre. Ennek a delegate-nek a meghívásakor minden láncban lévő módszer sorban kerül végrehajtásra.

Példa:

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

A kimenet:

Handler1: Szia
Handler2: Szia

Így a multicast-delegátok hasznosak események és visszahívások megvalósítására, amikor több feliratkozót kell értesíteni.