Sobes.tech
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.