Группа методов
Если сигнатура метода совпадает с делегатом,
достаточно указать имя метода без скобок - компилятор
создаст делегат, ссылающийся на этот метод. Такая
запись называется группой методов. Она работает с
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