首页 > 代码库 > 详解Lambda
详解Lambda
定义好委托:
public delegate int FirDelegate(int a);public delegate int SecDelegate(int a,int b);public delegate string ThrDelegate(int a);
lambda表达式其实是个匿名函数,第一个lambda表达式:
FirDelegate fir = p => p + 10;//实例化一个委托fir(100);//调用,结果为110
第二个lambda表达式:
SecDelegate sec = (p,q) => p + q;//实例化一个委托sec(20,30);//调用,结果为50
第三个lambda表达式:
ThrDelegate thr = p =>{ if (p < 50) { return "输入了小于50的数!"; } else { return "这个数不小于50!好大!"; }};thr(30);//调用,结果为"输入了小于50的数!"
第四个lambda表达式,希望传入两个int参数,返回string的结果:
Func<int,int,string> four = (p,q) =>{ return p + " + " + q + " 的结果是: " + (p + q);};four(10,20);//调用,结果为"10 + 20 的结果是: 30"
我们本应该定义一个委托:public delegate string FourDelegate(int a,int b);
然后给它实例化:FourDelegate four = ......;
然而,Func<param[],out TResult>给我们免去了这一步骤,需要任意个任意类型任意返回值的委托不再需要定义了。
前面N个是参数及类型,最后一个是返回值及类型。
关于lambda表达式中的return:
有大括号的,需加return。
无大括号的,不能加return。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。