c#中的Lambda表达式(是一个委托)

只要有委托参数类型的地方,就可以使用Lambda表达式。

LAMBDA运算符 “=>”左边列出了右侧Lambda主体中需要用到的参数,右边定义了Lambda的主体部分。

---------------------
 

(一)输入参数

在Lambda表达式中,输入参数是Lambda运算符的左边部分。

 1.Lambda表达式参数列表中的参数必须在:参数数量、类型、位置 ,上与委托相匹配

 2.表达式的参数列表中的参数不一定需要包含类型(如:用隐士类型),除非委托有ref或out参数---这样的参数必须注明显示类型。

 3.如果只有一个参数,并且是隐士类型,周围的圆括号可以被省略,否则必须有括号。

 4.如果没有参数,必须使用一组空的圆括号。

 5.输入参数的数量大于或者等于2时,Lambda表达式左边的一对小括弧中的多个参数质检使用逗号(,)分割。

示例1

下面创建一个Lambda表达式,它的输入参数的数量为0.该表达式将显示“This is a Lambda expression”字符串。

()=>Console.WriteLine("This is a Lambda expression.");  


分析2

由于上述Lambda表达式的输入参数的数量为0,因此,该Lambda表达式的左边部分的一对小括弧不能被省略。

 

 

示例2

下面创建一个Lambda表达式,它的输入参数包含一个参数:m。该表达式将计算m参数与2的乘积。

m=>m*2;  


分析2

上述Lambda表达式的输入参数省略了一对小括弧,它与“(m)=>m*2”Lambda表达式是等效的。

 

示例3

下面创建一个Lambda表达式,它的输入参数包含两个参数:m和n。该表达式将计算m和n参数的乘积。

(m,n)=>m*n;  


 

 

(二)表达式或语句块

 

多个Lambda表达式可以构成Lambda语句块。语句块可以放到运算符的右边,作为Lambda的主体。根据主题不同,Lambda表达式可以分为表达式Lambda和语句Lambda。语句块中可以包含多条语句,并且可以包含循环、方法调用和if语句等。

 

示例1

下面创建一个Lambda表达式,它的右边部分是一个表达式。该表达式计算m参数的平方值。

m=>m*n; 


分析1

如果Lambda表达式的右边部分是一个语句块,那么该语句块必须被"{"和"}"包围。

 

 

示例2

下面创建一个Lambda表达式,它的输入参数包括两个参数:m和n。该表达式的右边包含2个表达式;第一个表达式计算m和n参数的乘积,结果保存为result变量;第二个表达式显示result变量的值。

(m,n)=>{int result=m*n; Console.WriteLine(result);}  


分析2

上述Lambda表达式的右边部分包含2个表达式,因此,该表达式的右边部分必须被"{"和"}"包围。

 

(三)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值