1.Lambda是什么
(1)形如:()=> { } 就是lambda表达式
(2)lambda表达式就是一个匿名方法,在底层会生成在一个"<>"类中,生成带有名称的方法。
2、Lambda有什么
任何 Lambda 表达式都可以转换为委托类型。 Lambda 表达式可以转换的委托类型由其参数和返回值的类型定义。 如果 Lambda 表达式不返回值,则可以将其转换为 Action 委托类型之一;否则,可将其转换为 Func 委托类型之一。
3、Lambda怎样用
public void Lambda()
{
//表达式lambda 只有一个表达式,表示这里面只允许有一行代码
Func<int, int> func = x => x * 4;
//接收表达式Lambda返回的值
int result1 = func(5); //5*4=20//在表达式lambda中调用方法
func = x => x * Add(3, 2);
int result2 = func(5); //5*(3+2)=25//result 进行 表达式lambda 改进
Func<int, int, int> func1 = (x,y) => { return x + y; };
func = x => x * func1(3, 2);
int result3 = func(5); //5*(3+2)=25
//result 进行 表达式lambda添加逻辑运算
Func<int,int,int> func2 = (x, y) => { if (x < y) return x + y; else return x;};
//if (x < y)
// return x + y;
//else
// return x;
func = x => x * func2(3, 2);
int result4 = func(5); //5*3=15}
public int Add(int x, int y)
{return x + y;
}
4、Lambda的输入参数说明
(1)如果是没有参数,必须有这个空括号:
Action line = () => Console.WriteLine();
(2)如果只有一个输入参数,则括号可有可无:Func<double, double> cube = x => x * x * x;
(3)两个或更多输入参数使用逗号加以分隔:
Func<int, int, bool> testForEquality = (x, y) => x == y;