目录
Lambda表达式
Lambda表达式简介
Lambda表达式是作为对象处理的代码块,可作为参数传递给方法,也可通过方法调用返回,是与匿名方法类似的内联表达式,但更加灵活。
使用Lambda表达式,比较典型的就是会用到符号“ =>”,这一个符号读作"goes to",在Lambda表达式中,它的左侧是输入变量符号,右侧是Lambda表达体,对传入的参数进行运算。
Lambda表达式如何使用
要使用Lambda表达式是比较简单的,直接进行定义,一般情况下使用Lambda表达式的结构如下
函数(参数) = Lambda表达式
表达式的简单使用
实现一个x等于2*x的计算,这里是匿名的:
static void Main(string[] args)
{
Func<int, int> study = x => x + x; // =>的左边等于右边
Console.WriteLine("Out: {0}",study(5));
Console.ReadLine();
}
这里使用了一个Func,这是一个封装的方法,是.NET类库中增加的内置委托,以便更加简洁方便的使用委托。用于将Lambda表达式封装为函数以调用
上面的函数相当于就是输入x,计算x+x得到的结果
表达式与零到多个参数
Lambda是可以支持任意数量的参数,但是括号在绝大多数情况下是必须的,在上一个例子里面,因为只有一个输入参数,因此不需要在=>左侧添加括号,而在其他时候,0个参数或者N个参数的时候都需要。
可以
(x,y)=>x-y
也可以
() => Console.WriteLine("System Pause");
如果要判断也可以使用Lambda表达式,比如
Func<int, int, bool> study2 = (x, y) => x == y;
上式写作普通函数就相当于
static bool study2(int x,int y)
{
if( x == y)
{
return true;
}
return false;
}
最终运行返回结果是true或false,整个函数如下
static void Main(string[] args)
{
Func<int, int, bool> study2 = (x, y) => x == y;//判断x和y相等
Console.WriteLine("Out: {0}", study2(1,5));
Console.ReadLine();
}
运行结果
Lambda语句
Lambda语句简介
相比较Lambda表达式来说,Lambda语句是写在{}中的,具有更多行并且更为的灵活,类似于匿名方法
Lambda语句的使用
这里使用Action<>来建立,相比较前文使用的Func<>来说,Action<>不具有返回值
static void Main(string[] args)
{
Action<int,String> dude= (x,str) =>//定义
{
System.Console.WriteLine("Number is{0},String is {1}", x, str);
};
dude(10, "Distinguish"); //传入参数,调用
System.Console.ReadLine();
}
运行的结果