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);
  • 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);
Default image
Sriram Mannava

I'm a full-stack developer and a software enthusiast who likes to play around with cloud and tech stack out of curiosity.

Leave a Reply