Lambda表达式
Lambda表达式,其实就是匿名方法的一个简写。
比如这个匿名方法:
static void Main(string[] args)
{ Func<int, int, int> plus = delegate (int a, int b)
{ return a + b; } ; int res= plus(1,2) ; int res= plus(1,2) ; Console.WriteLine(res) ;
}
它就可以简写成:
{ Func<int, int, int> plus = (a, b) => { return a + b; } ;
int res= plus(1,2);
Console.WriteLine(res);
//这样的话,一行代码就可以搞定了
}
当表达式只有一条语句时,可以把这个括号和return语句都省略掉。
于是就变成了:
{ Func<int, int, int> plus = (a, b) => a+b;
Console.WriteLine(res);
}
如果只有一个参数,那就连括号都不需要,
{ Func<int, int, int> square = a=> a*a;//square是求平方
Console.WriteLine(res);
}
Lambda表达式是可以访问外部变量的。
比如:
int a = 5;
Func<int, int> f = x => x + a;
Console.WriteLine();

外部变量还可以重新赋值。
