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 удобен для методов, где нужно проверить условие и получить булев результат, например, для фильтрации коллекций.