C# Lamada表达式详解

Lambda —— 表达式

Lambda 表达式是一个匿名函数,用它可以高效简化代码,常用作委托,回调

Lambda 表达式都使用运算符 =>,所以当你见到这个符号,基本上就是一个 Lambda 表达式

Lambda 运算符的左边是输入参数(),=>,右边是表达式或语句块

Lambda 表达式,是可以访问到外部变量的

可以将此表达式分配给委托类型

 

仔细分析ladama表达式,就是左边是参数 (),右边是一个表达式或语句块,返回值编译器自动识别

如:
()=> {};

0个参数,返回值为空void

 Func<int,int> lama = (x)  => { return x * x;  }; 

这个是1个int参数,返回值为int

若参数只有一个,那么可以不需要括号,若入参数大于一个,那么必须有括号

简化后:

Func<int,int> lama = x => { return x * x; };

还可以再简化,因为=>右边可以是表达式或者语句块,我们直接使用表达式:

Func<int,int> lama = x =>   x * x;

这也是linq里面最常用的写法

 

 

返回值:

如果是语句块,那么要显示的调用return,否则编译器会认为是返回void,如:

Func<int,int> lama = x => { x * x; };  //会报错,因为需要返回int,但是因为是语句块,所以没有办法推断类型
Func<int,int> lama = x => { return x * x; }; //正确,因为显示的调用了return

 

如果是表达式,那么编译器会自动推断表达式的类型,就比如:

Func<int,int> lama = x =>   x * x;

 

 

赋值:

lamada表达式是匿名函数,本质就是一个函数,那么用它可以给Action,Func赋值

比如Task.Run( ( ) => { } ) ;

也正是因为这个所以Linq里面很多的参数需要的是Action和Func,我们可以直接传入lamada函数

如:

 List<int> list = new List<int>();
 list.Select(q => q=1);

 

 

参考:

https://www.cnblogs.com/chinarbolg/p/9601422.html

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值