Sobes.tech
Junior — Middle

Vysvetlite, čo je multicast delegate a ako funguje v kontexte delegate-ov .NET.

sobes.tech AI

Odpoveď od AI

Multicast-delegát v .NET je delegát, ktorý môže ukladať odkazy na viacero metód a pri volaní delegáta ich volá sekvenčne.

Keď pridáte viacero metód k jednému delegátovi (pomocou operátora +=), vytvorí sa reťazec volaní. Pri volaní takéhoto delegáta budú všetky metódy v reťazci volané v poradí.

Príklad:

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

Výstup bude:

Handler1: Ahoj
Handler2: Ahoj

Týmto spôsobom sú multicast-delegáti užitoční na implementáciu udalostí a spätných volaní, keď je potrebné oznámiť viacerých odberateľov.