Что такое делегат с многократной подпиской (Multicasting delegate) в C#?

Этот вопрос проверяет знание концепции делегатов с многократной подпиской, которые позволяют вызывать несколько методов одним делегатом.

Короткий ответ

Делегат с многократной подпиской — это расширение обычного делегата, которое позволяет назначить более одного метода для вызова при срабатывании делегата. Этот тип делегата полезен, когда необходимо выполнить несколько действий с одним событием.

Длинный ответ

В C# делегат с многократной подпиской (или multicasting delegate) позволяет добавить несколько методов к одному делегату. Когда делегат вызывается, все добавленные методы выполняются по очереди. Этот механизм часто используется в событийно-ориентированных приложениях, где одно событие может вызывать несколько обработчиков.

 

Пример использования делегата с многократной подпиской:

public delegate void MyDelegate(string message);

class Program
{
    static void Main()
    {
        MyDelegate del = Method1;
        del += Method2;  // Добавляем второй метод в делегат
        del("Hello!");  // Оба метода будут вызваны
    }

    static void Method1(string message)
    {
        Console.WriteLine("Method1: " + message);
    }

    static void Method2(string message)
    {
        Console.WriteLine("Method2: " + message);
    }
}

В этом примере:

Метод Method1 и Method2 подписываются на делегат del.

При вызове делегата del("Hello!") оба метода выполняются.

 

Делегаты с многократной подпиской позволяют упростить организацию вызовов нескольких методов для одного события. Это удобно для реализации событийной логики в приложениях, где одно событие должно активировать несколько действий.

Уровень

  • Рейтинг:

    2

  • Сложность:

    7

Навыки

  • C#

Ключевые слова

Подпишись на C# Developer в телеграм