(第三季)209-Lambda表达式

来源:互联网 发布:毕向东 java 编辑:程序博客网 时间:2024/04/28 12:38

Lambda表达式-表示一个方法的定义

从C#3.0开始,可以使用Lambda表达式代替匿名方法。只要有委托参数类型的地方就可以使用Lambda表达式。刚刚的例子可以修改为

Func<int,int,int>plus = (a,b)=>{ int temp= a+b;return temp; };

intres = plus(34,34);

Console.WriteLine(res);

Lambda运算符=>的左边列出了需要的参数,如果是一个参数可以直接写  a=>(参数名自己定义),如果多个参数就使用括号括起来,参数之间以,间隔

多行语句

1,如果Lambda表达式只有一条语句,在方法快内就不需要花括号和return语句,编译器会自动添加return语句

  Func<double,double> square = x=>x*x;

  添加花括号,return语句和分号是完全合法的

  Func<double,double> square = x=>{

  return x*x;

  }

2,如果Lambda表达式的实现代码中需要多条语句,就必须添加花括号和return语句。

Lambda表达式外部的变量

通过Lambda表达式可以访问Lambda表达式块外部的变量。这是一个非常好的功能,但如果不能正确使用,也会非常危险。示例:

intsomVal = 5;

Func<int,int>f = x=>x+somVal;

Console.WriteLine(f(3));//8

somVal= 7;

Console.WriteLine(f(3));//10

这个方法的结果,不但受到参数的控制,还受到somVal变量的控制,结果不可控,容易出现编程问题,用的时候要谨慎。


/**/using System;namespace CatCry{    class MainClass    {        static int Test1(int arg1, int arg2)        {            return arg1 + arg2;        }        static void Main()        {            //Func<int, int, int> plus = Test1;            /*            // 修改成: 匿名方法  的形式            Func<int, int, int> plus = delegate (int arg1, int arg2)            {                return arg2 + arg1;            };            // 匿名方法本质上是一个方法,只是没有名字,任何使用委托变量的地方都可以使用匿名方法赋值            */            // Lambda表达式 用来 代替 匿名方法 ,所以一个Lambda表达式也是定一个方法            Func<int, int, int> plus = (arg1, arg2) =>  // Lambda表达式的参数不需要申明类型            {                return arg1 + arg2;            };            Func<int, int> test2 = a => a + 1;  // Lambda表达式的参数只有一个的时候            // 可以不加上括号,当函数体的语句只有一句的时候,我们可以不加上大括号 也可以不加上return语句            Func<int, int> test3 = (a) =>            {                return a + 1;            };                        Console.ReadKey();        }    }}


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 亲戚借户口本办公租房怎么办 7.1深圳禁行货车怎么办 怎么办无锡市的货车临时通行证 武汉医保卡密码忘了怎么办 打出租车被黑了怎么办 行李掉在出租车上怎么办 家庭农场买农机怎么办补贴 在异地买的保险怎么办 理发店被投诉工商局找我怎么办? 临安市民卡丢了怎么办 合肥分期付款买手机被骗怎么办 公司注销后还遇到投诉怎么办 超市购物结账时少收钱怎么办 卖给顾客东西时会有斜念怎么办 实体店家纺想换货怎么办 劳动仲裁裁决部分不服怎么办 劳动仲裁公司拒不履行怎么办? 苹果手机被黑客锁了怎么办 出租大面积厂房的中介费用怎么办 中山房子网签不了怎么办 物业服务太差该怎么办 取完公积金的卡怎么办 车卖了对方不过户怎么办 卫生间下水道堵了怎么办妙招 教练不让你练车怎么办 教练不让我练车怎么办 考三要练车教练不给练怎么办 科目二指纹打卡指纹不清楚怎么办 教练凶你的时候怎么办 人行聘用制3年后怎么办 道路运输从业资格证过期了怎么办 码头如果要危险运输证怎么办? 7座车怎么办载客营运证 商调函到了原单位不配合怎么办 公司车辆超证了怎么办? 准迁证过期了5年怎么办 天津中派木业不发工资怎么办 在香港餐厅嫌冷怎么办 出国读研报到证怎么办 高中后出国留学档案怎么办 爱迪花园拆了怎么办