Sobes.tech
Junior — Middle

Vysvětlete, co je multicastový delegát a jak funguje v kontextu delegátů .NET.

sobes.tech AI

Odpověď od AI

Multicast-delegát v .NET je delegát, který může uchovávat odkazy na více metod a při volání delegáta je volat sekvenčně.

Když přidáte několik metod k jednomu delegátovi (pomocí operátoru +=), vytvoří se řetězec volání. Při volání takového delegáta budou všechny metody v řetězci volány v pořadí.

Pří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 způsobem jsou multicast-delegáti užiteční pro implementaci událostí a zpětných volání, když je třeba oznámit více odběratelů.