1.Lambda 表达式就是匿名方法和委托的结合,
标记符:=>
左侧 = 方法的参数
右侧= 待执行语句或 方法
2. 正常的方法如下
public delegate bool Predicate(T obj); 委托声明
public T Find(Predicate match); 某个以委托为参数的方法
private bool CheckNG(string ss,int a) 返回Bool值类型,包含两个参数的方法
示例:
正常写法
1.一个可以注册委托的方法
private bool Check(string ss)
2.注册
Predicate Stest= Stest = new Predicate(CheckNG);
或
Stest = CheckNG;
或用匿名方法直接写语句不用CheckNG的方法名
Stest= delegate (string i)
{
return i != s1.ToString();
};
3.使用
var sss = List.Find(Stest);
Lambda 写法:
uu = List.Find((i) => i != s1.ToString());
或
uu = List.Find((i) => CheckNG(i,10));
#可以看出Lambda 表达式大大简化了以委托为变量的方法的书写代码,直接以语句和方法代替了委托的一系列步骤
注意:
1.=> 左侧为委托的参数类型一致的变量,若为无参委托,则用()代替;
2.=> 右侧的返回值必须和委托的值类型一致;右侧可以使用的参数不受委托定义的参数限制,也可以不使用左侧的参数,只要返回值类型一致即可;