Sobes.tech
Back to questions
Junior — Middle
73

Можете объяснить различия между делегатами Action и Func в языке C#?

Answer from AI

sobes.tech AI

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

  • Action — делегат, который не возвращает значение (void). Может принимать от 0 до 16 параметров.
  • Func — делегат, который возвращает значение. Последний параметр всегда тип возвращаемого значения, а все предыдущие — параметры метода.

Примеры:

Action<string> print = s => Console.WriteLine(s);
print("Hello"); // выводит Hello

Func<int, int, int> add = (a, b) => a + b;
int result = add(3, 4); // result = 7

Таким образом, выбирайте Action, если метод ничего не возвращает, и Func, если нужно вернуть результат.