Sobes.tech
Junior — Middle

Обяснете какво е мултикаст делегат и как работи в контекста на делегатите .NET.

sobes.tech AI

Отговор от AI

Мултикаст делегат в .NET е делегат, който може да съхранява препратки към няколко метода и да ги извиква последователно при извикване на делегата.

Когато добавите няколко метода към един делегат (чрез оператора +=), се създава верига от извиквания. При извикване на такъв делегат, всички методи в тази верига ще бъдат извикани по ред.

Пример:

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("Здравей");

Изходът ще бъде:

Handler1: Здравей
Handler2: Здравей

По този начин, мултикаст делегатите са полезни за реализиране на събития и обратни повиквания, когато трябва да уведомите няколко абонати.