Junior — Middle
Wyjaśnij, czym jest delegat multicast i jak działa w kontekście delegatów .NET.
sobes.tech AI
Odpowiedź od AI
Delegat multicast w .NET to delegat, który może przechowywać odwołania do wielu metod i wywoływać je kolejno podczas wywołania delegata.
Gdy dodajesz kilka metod do jednego delegata (za pomocą operatora +=), tworzony jest łańcuch wywołań. Podczas wywołania takiego delegata, wszystkie metody z tego łańcucha zostaną wywołane w kolejności.
Przykład:
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("Cześć");
Wynik będzie wyglądał tak:
Handler1: Cześć
Handler2: Cześć
W ten sposób multicast-delegaty są przydatne do implementacji zdarzeń i callbacków, gdy trzeba powiadomić wielu subskrybentów.