Reputation: 16629
I understand a lambda expression is in essence an inline delegate declaration to prevent the extra step
example
delegate int Square(int x)
public class Program
{
static void Main(String[] args)
{
Square s = x=>x*x;
int result = s(5);
Console.WriteLine(result); // gives 25
}
}
How does one apply Lambda expressions to multi parameters Something like
delegate int Add(int a, int b)
static void Main(String[] args)
{
// Lambda expression goes here
}
How can multi parameters be expressed using Lambda expressions?
Upvotes: 36
Views: 64793
Reputation: 150108
Yes. When you have other-than-one (zero, or > 1) lambda arguments, use parenthesis around them.
Examples
Func<int, int, int> add = (a,b) => a + b;
int result = add(1, 3);
Func<int> constant = () => 42;
var life = constant();
Upvotes: 15
Reputation: 21
delegate int Multiplication(int x, int y)
public class Program
{
static void Main(String[] args)
{
Multiplication s = (o,p)=>o*p;
int result = s(5,2);
Console.WriteLine(result); // gives 10
}
}
Upvotes: 2