What is the difference between Func and Action delegates in C#?

  • Func and Action are two delegate types defined in C# which accept one or more generic arguments
  • Both can accept upto 16 generic arguments.
  • The difference between Func and Action is in their return type.
  • Func type accepts one or more parameters and returns a value
  • Action type accepts one or more parameters but doesn't return a value.
Func<int, int> Sum = delegate (int a, int b) { 
  return a + b; 
}

Action<int, int> PrintSum = delegate (int a, int b) {
   Console.WriteLine(a+b);
}

// prints 9
Console.WriteLine(Sum(5,4));
PrintSum(5,4);

C# Concepts Posted May 01, 2021

You can now show your support. 😊

We use cookies to provide you with a great user experience, analyze traffic and serve targeted promotions.   Learn More   Accept