C#3.0-Lambda表达式-阿里云开发者社区

开发者社区> 云计算> 正文
登录阅读全文

C#3.0-Lambda表达式

简介:

(1)Lambda表达式简介:

C#2.0的匿名方法云寻我们以内联的方式来实现委托实例,而C#3.0Lambda表达式允许我们使用一种更接近人的思维,更自然的方式来实现类似于匿名方法同样的效果。

 

(2)Lambda表达式格式:

(参数列表)=>表达式或者语句块;

可以有多个参数,一个参数,或者无参数。参数类型可以隐式或者显式。

例如:

(x,y)=>x*y 多参数,隐式类型=>表达式

x=>x*10 单参数,隐式类型=>表达式

x=>{return x*10;} 单参数,隐式类型=>语句块

(int x)=>x*10单参数,显式类型=>表达式

(int x)=>{ return x*10;} 单参数,显式类型=>语句块

()=>Console.WriteLine() 无参数

 

(3)Lambda表达式格式要点:

1)  Lambda表达式的参数类型可以忽略,因为可以根据使用的上下文进行推断。

2)  Lambda表达式的主题(body)可以是表达式,也可以是语句块。

3)  Lambda表达式传入的实参将参与类型推断,以及方法重载辨析。

4)  Lambda表达式表达式和表达式体可以被转换为表达式树。

 

(4)Lambda表达式与委托类型:

Lambda表达式L可以被转换为委托类型D,需要满足一下条件:

LD拥有相同的参数个数;

L的参数类型要与D的参数类型相同。注意隐式类型要参与类型辨析;

D的返回类型与L相同,无论L是表达式,还是语句块。

 




 本文转自 王祖康 51CTO博客,原文链接:http://blog.51cto.com/wzk89/403742,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
云计算
使用钉钉扫一扫加入圈子
+ 订阅

时时分享云计算技术内容,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

其他文章
最新文章