Sobes.tech
Back to questions
Junior — Middle
68

Какое различие между делегатами Func и Predicate в языке C#?

Answer from AI

sobes.tech AI

В C# делегаты Func и Predicate служат для представления методов, но имеют разные назначения и сигнатуры:

  • Func<T, TResult> — делегат, который принимает один или несколько параметров и возвращает значение типа TResult. Может иметь от 0 до 16 параметров, последний параметр всегда — возвращаемый тип.

  • Predicate<T> — делегат, который принимает один параметр типа T и возвращает bool. Используется для проверки условия (предиката).

Таким образом, Predicate<T> — это частный случай Func<T, bool>. Например:

Func<int, string> funcExample = x => x.ToString();
Predicate<int> predicateExample = x => x > 0;

Predicate удобен для методов, где нужно проверить условие и получить булев результат, например, для фильтрации коллекций.