Lambda表达式介绍

lambda表达式

           定义:这是一个匿名函数,并且可以捕获一定范围内的变量,是一个能返回一个方法的表达式,但它只包含两个元素:参数列表和方法主体。

           简单声明使用:输入参数表=>表达式或者语句块,=>操作符,它向编译器指出这是一个lambda表达式。

              例:

                   a=>a*a; 一个简单的表达式,返回参数值的平方,参数a的类型根据上下文推导。

                   a=>{return a*a;} 语义和上一个表达式相同,但将一个C#语句块用作主体。

                   ()=>b.a(0) 调用一个方法,表达式不获取参数,表达式可能会、也可能不会返回值。

                   (a,b)=>{a++;return a/y;} 多个参数,编译器自己推导参数类型,参数a是以值的形式传递,所以++操作的效果是局部于表达式。

                   (ref int a,int b)=>{a++;return a/b;} 多个参数,都显式指定类型,参数a是以引用形式出传递,所以++操作的效果是永久的。    

            特点:如果lambda表达式要获取参数,要在=>操作符左侧圆括号内指定它们。可以省略参数类型,C#编译器能根据lambda表达式的上下文来推导。

                    lambda表达式可以返回值,但返回类型必须与即将添加这个lambda表达式的委托类型匹配。

                    lambda表达式的主体可以是一个简单的表达式,也可以是一个C#代码块。

                    lambda表达式方法中定义的变量是局部变量。

                    lambda表达式可以访问和修改lambda表达式外部的所有变量,只有那些变量在lambda表达式定义时,和lambda表达式处在相同的作用域中。        

    
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

思丰百年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值