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

Группа методов

Если сигнатура метода совпадает с делегатом, достаточно указать имя метода без скобок - компилятор создаст делегат, ссылающийся на этот метод. Такая запись называется группой методов. Она работает с Action, Func и пользовательским delegate.

Синтаксис

Action<string> act = Print; act("abcde");

Пример

Давайте присвоим метод переменной Action<string>:

using System; class Program { static void Print(string text) { Console.WriteLine(text); } static void Main() { Action<string> act = Print; act("abcde"); } }

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

"abcde"

Пример

Давайте передать группу методов в Func<string, int>:

using System; class Program { static int GetLength(string text) { return text.Length; } static void Main() { Func<string, int> measure = GetLength; int res = measure("12345"); Console.WriteLine(res); } }

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

5

Пример

Давайте использовать группу методов с Predicate<int>:

using System; class Program { static bool IsPositive(int num) { return num > 0; } static void Main() { Predicate<int> check = IsPositive; Console.WriteLine(check(5)); } }

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

True

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

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