Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
1132 of 1492 menu
◀ ▶

Метод GetInvocationList

У объединённого делегата GetInvocationList возвращает Delegate[] - по одному элементу на каждый метод. Длина массива показывает число целей; у каждого элемента можно прочитать Method.Name. Цепочку обычно собирают через Combine.

Синтаксис

Delegate[] list = chain.GetInvocationList(); int count = list.Length;

Пример

Давайте выведем число целей в цепочке Action:

using System; class Program { static void First() { } static void Second() { } static void Main() { Action a = First; Action b = Second; Action chain = (Action)Delegate.Combine(a, b); Delegate[] list = chain.GetInvocationList(); Console.WriteLine(list.Length); } }

Результат выполнения кода:

2

Пример

Давайте выведем имена методов из списка:

using System; class Program { static void Alpha() { } static void Beta() { } static void Main() { Action a = Alpha; Action b = Beta; Action chain = (Action)Delegate.Combine(a, b); Delegate[] list = chain.GetInvocationList(); string res = list[0].Method.Name + " " + list[1].Method.Name; Console.WriteLine(res); } }

Результат выполнения кода:

"Alpha Beta"

Пример

Давайте обойдём список в цикле и соберём имена:

using System; class Program { static void One() { } static void Two() { } static void Three() { } static void Main() { Action chain = (Action)Delegate.Combine(One, Two, Three); Delegate[] list = chain.GetInvocationList(); string res = ""; foreach (Delegate item in list) { res += item.Method.Name; } Console.WriteLine(res); } }

Результат выполнения кода:

"OneTwoThree"

Смотрите также

  • Combine,
    который формирует мультикаст-цепочку
  • Remove,
    который удаляет одно звено из цепочки
  • Delegate,
    у которого хранятся Method и Target
  • delegate,
    тип делегата для своих сигнатур
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить