Цепочка вызовов в C#
Мультикаст-делегат хранит цепочку методов. При вызове переменной они выполняются один за другим в порядке добавления.
Оператор += добавляет метод в цепочку.
Запишем два обработчика и вызовем делегат:
void First() {
Console.Write("1");
}
void Second() {
Console.Write("2");
}
Action flow = First;
flow += Second;
flow();
Тот же прием работает для делегата с параметром. Запишем два метода с аргументом строки:
void Head(string text) {
Console.WriteLine("head");
}
void Tail(string text) {
Console.WriteLine("tail");
}
Action<string> chain = Head;
chain += Tail;
chain("x");
Сделайте три метода без параметров, каждый выводит свою цифру с новой строки. Соберите их в одной переменной без параметров и вызовите один раз.