lambda表达式是对匿名方法的一种改进,具有更加简洁的语法和更易理解的形式,lambda表达式可以包括表达式和语句,并且可以用与创建委托或表达式目录树类型。

  lambda表达式都使用Lambda运算符=>,读作goes to。该Lambda运算符的左边是输入参数,右边包含表达式或者语句块。

Lambda表达式的声明:(参数列表)=>{方法体}

  其中的参数列表和普通方法的参数列表相同,Lambda表达式是升级版的匿名方法,如下面语法所示:

返回类型  方法名(参数){方法体}  //普通方法
delegate (参数列表) {方法体}  //匿名方法
(参数列表)=>{方法体}  //

下面举个例子:

//求两个整数最大值
(int x,int y)=>{return x>y?x:y;}
//决断一个字符串是否是数字
(string text)=>
{
double d;
return double.TryParse(text,out d);
}
//输入hello world
()=>{Console.WriteLine("hello world");}

特别需要指出的是如果lambda表达式没有参数,则参数为空,但必须要圆括号。

下面看一下lambda表达式的更简洁语法:

(1)如果lambda表达式的参数类型是可以通过上下午推断时,参数列表外面的圆括号也可以省略,如下代码所示

(x,y)=>{return x>y?x:y;}

(2)若果lambda表达式只有一个参数且参数类型被省略,则参数列表外面的圆括号也可以省略,如下代码

x=>{return x++;}

(3)如果lambda语句的方法体只有一条return语句,且return语句有返回类型,则return关键字、分号、大括号都可以省略,此时lambda表达式的方法体只剩下一个表达式,如下例子,

(x,y)=>x>y?x:y;
//(x,y)=>{retrun x>y?x:y;}
x=>x++;
//x=>{retrun x++;}

举例说明lambda表达式的应用:

输出的结果是:

转自http://www.cnblogs.com/flykai/p/3235827.html

最新文章

  1. Python基础篇【第7篇】: 面向对象(1)
  2. 一次性插入多条sql语句的几种方法
  3. 【转】 #1451 - Cannot delete or update a parent row: a foreign key constraint fails 问题的解决办法
  4. 2014年听写VOA50篇
  5. python爬虫之BeautifulSoup
  6. mdelay,udelay,msleep区别
  7. MyEclipse导入ant项目——Java编程思想
  8. Android Weekly Notes Issue #239
  9. Failed to start SYSV: Nginx is an HTTP(S) server, HTTP(S) reverse
  10. [转]让Sublime Text2支持浏览器中预览
  11. Unity 之 Redux 模式(第二篇)—— Rigidbody 改造,摄像机控制
  12. ACM之跳骚---ShinePans
  13. js 上一天、下一天
  14. 关于用PS改变图像颜色
  15. JavaWeb知识回顾二
  16. 数据库SQL,NoSQL之小感悟
  17. 读书笔记(一)—— 浅析浏览器渲染过程和html中的文件加载
  18. py-day4-1 python reduce函数
  19. mvc中文件上传下载
  20. Android-Start方式和Bind方式混合开启Service

热门文章

  1. md RAID
  2. vim插件介绍
  3. c++ break while
  4. 【转】KM匹配题集
  5. hdu 3807
  6. 弱弱的玩下Javascript
  7. HDU 2489 Minimal Ratio Tree(dfs枚举+最小生成树)
  8. ****Git 常用命令和使用思维导图
  9. POJ1159Palindrome
  10. 毕向东JAVA视频讲解(第六课)