Что такое делегат с многократной подпиской (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!") оба метода выполняются.
Делегаты с многократной подпиской позволяют упростить организацию вызовов нескольких методов для одного события. Это удобно для реализации событийной логики в приложениях, где одно событие должно активировать несколько действий.