Lambda演变

发布时间 2023-12-12 09:57:49作者: 落花流水1173

Lambda怎么来的?

匿名委托:

委托变量不仅可以指向普通方法,还可以指向匿名方法(没有方法名称,只用delegate代替)如:
Func<int,int,string> f1=delegate(int i1,int i2){return (i1+i2).toString();};
string s=f1(1,2);

Lambda的演变:

1、使用Lambda替代匿名方法,如:
Func<int,int,string> f1=(int i1,int i2)=>{return (i1+i2).toString();};
2、 简写(省去参数类型,编译器能自动推断):
Func<int,int,string> f1=( i1, i2)=>{return (i1+i2).toString();};
3、如果方法只有一行,”{}”可以去掉:
Action<int,int> f1=(i1,i2)=>console.writeLine(i1+i2);
4、如果方法只有一行,且是有返回值的方法,“{}”可以去掉,且“return”也要去掉:
Func<int,int,string> f1=( i1, i2)=> (i1+i2).toString();
5、如果只用一个参数,参数的“()”可以省略:
Action<string> f1=s=>console.writeLine(s);
Func<int,bool>f2=i=>i>5;