lambda表达式

1、lambda表达式简介

     lambda表达式是比匿名方法更加简洁的一种匿名函数语法,是在c#3.0中引入的。

    这里的匿名函数泛指lambda表达式和匿名方法。

   lambda表达式包括:语句lambda和表达式lambda

 2、语句lambda

   @1:语句lambda是c#3.0为匿名方法提供的一种简化语法。这种语法不包括delegate关键字,但添加了lambda运算符=>。

           示例:BubbleSort(items,delegate (int  first ,int  second){  return  first >second};);

                       等同于

                      BubbleSort(items,(int  first ,int  second)=> {  return  first >second};);

   @2:语句lambda允许通过“类型参数推断”来进一步简化语法。只要编译器能推断出参数类型或能将参数类型隐式转换成期望的类型,语句lambda就可以不显示声明参数的数据类型。只要语句lambda包含了一个参数类型,所有类型都要加上。如果要指定参数类型,那么指定的参数类型必须和委托类型完全匹配。

                  例如:  BubbleSort(items,( first , second)=> {  return  first >second};);

    @3:C#要求用一对圆括号来封闭lambda表达式的参数列表,即使是无参数的语句lambda(代表无输入参数的委托),也要输入一对空白的圆括号。例外情况:当编译器能推断出数据类型,而且只有一个输入参数时,语句lambda可以不带圆括号。

   

3、表达式lambda 与语句lambda的区别

    语句lambda在lambda运算符的右侧有一个语句块,可含有0个或更多的语句,而表达式lambda只有一个表达式(没有return 语句 及大括号)

          BubbleSort(items,(int  first ,int  second)=>   first >second);

4、lambda运算符=>的理解

     在查看含有lambda运算符的代码是,可再自己的脑海中将这个运算符替换成“用于”,“变成”或“满足......条件(用在表达式lambda是一个断言 即返回一个布尔值)”

    例如: BubbleSort(items,(int  first ,int  second)=> {  return  first >second};); 中的第二个参数理解成“整数first和second用于返回first小于second的结果”

                  BubbleSort(items,(int  first ,int  second)=>   first >second);中的第二个参数理解成“整数first和second满足first小于second的的条件”

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值