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

Метод Remove

Delegate.Remove принимает текущую цепочку и делегат, который нужно убрать. Результат имеет тип Delegate - его снова приводят к Action или к своему типу. Если в цепочке остаётся один метод, при вызове выполняется только он.

Синтаксис

Action left = (Action)Delegate.Remove(chain, toDrop); left();

Пример

Давайте уберём первый метод из цепочки Action:

using System; class Program { static void First() { Console.Write("1"); } static void Second() { Console.Write("2"); } static void Main() { Action a = First; Action b = Second; Action chain = (Action)Delegate.Combine(a, b); Action left = (Action)Delegate.Remove(chain, a); left(); } }

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

"2"

Пример

Давайте снимем второй обработчик и оставим первый:

using System; class Program { static void First() { Console.WriteLine("abcde"); } static void Second() { Console.WriteLine("12345"); } static void Main() { Action a = First; Action b = Second; Action chain = (Action)Delegate.Combine(a, b); Action left = (Action)Delegate.Remove(chain, b); left(); } }

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

"abcde"

Пример

Давайте применим Remove к пользовательскому делегату:

using System; delegate void StepHandler(); class Program { static void StepA() { Console.Write("a"); } static void StepB() { Console.Write("b"); } static void Main() { StepHandler a = StepA; StepHandler b = StepB; StepHandler chain = (StepHandler)Delegate.Combine(a, b); StepHandler left = (StepHandler)Delegate.Remove(chain, a); left(); } }

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

"b"

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

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