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.