Простой пример аргументов и того, что возвращает каждый тип
Этот Func принимает два аргумента int и возвращает int.Func всегда имеет возвращаемый тип
Func<int, int, int> sum = (a, b) => a + b;
Console.WriteLine(sum(3, 5));//Print 8
В этом случае func не имеет аргументов, но возвращает строку
Func<string> print = () => "Hello world";
Console.WriteLine(print());//Print Hello world
Это действие принимает два аргумента int и возвращает void
Action<int, int> displayInput = (x, y) => Console.WriteLine("First number is :" + x + " , Second number is "+ y);
displayInput(4, 6); //Print First number is :4 , Second number is :6
Этот предикат принимает один аргумент и всегда возвращает bool. Обычно предикаты всегда возвращают bool.
Predicate<int> isPositive = (x) => x > 0;
Console.WriteLine(isPositive(5));//Print True