黑马程序员 一秒学会Lambda表达式

原创 2013年12月05日 20:30:57
---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------

匿名方法:在匿名方法的语法中,delegate表达式关键字是有点多余,因为编译器已经知道我们在奖方法赋值给委托。

从匿名到lambda表达式:删除delegate关键字,在参数列表和匿名方法主体这间放lambda运算符=>.(lambda运算读作“goes to”)
 例: MyDel del = delegate(int x)   { return x + 1;};  //匿名方法
      MyDel le1 =         (int x) =>{ return x + 1;};  //Lambda表达式

这种简单的转换简洁了一点,然而,编译器可以通过推断,允许我们更进一步简化Lambda表达,如下:
1.编译器还可以从委托的声明中知道委托参数的类型,因此lambda表达式允许我们省略类型参数,如le2.(带有类型的参数列表称为显示类型,省略类型的参数列表称为隐式类型)
2.如果只有一个隐式类型参数,我们可以省略周围的圆括号,如le3.
3.最后,lambad表达式允许表达式的主体是语句块或表达式,如果语句块包含了一个返回语句,我们可以将语句块替换为return关键字后的表达式,如le4.
MyDel del = delegate(int x)   { return x + 1;};  //匿名方法
MyDel le1 =         (int x) =>{ return x + 1;};  //Lambda表达式
MyDel le2 =             (x) =>{ return x + 1;};  //Lambda表达式
MyDel le3 =               x =>{ return x + 1;};  //Lambda表达式
MyDel le4 =               x =>         x + 1  ;  //Lambda表达式
这样看起来,是不是更简洁多了,更容易理解了,呵呵!

总结:有关lambda表达式的参数列表的要点如下,
1.lambda表达式参数列表中的参数必须在参数数量、类型和位置上与委托相匹配
2.表达式的参数列表中的参数不一定需要包含类型(如隐式类型),除非委托有ref或out参数—此时类型是必须的(如显式类型)
3.如果只有一个参数,并且隐式类型的,周围的圆括号可以被省略,否则它就是必须的。
4.如果没有参数,必须使用一组空的圆括号。
   

---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流! ----------------------

相关文章推荐

黑马程序员_JAVA8新特性

---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------...

用jQuery实现弹出窗口弹出div层

通过今天的jquery实例学习,我们要达到这样的效果:点击页面的链接,弹出一个div层,同时页面的其他部分变灰并且不能点击;无论是改变浏览器窗口大小还是下拉滚动条,这个弹出层都能始终保持居中;点击页面...
  • samruo
  • samruo
  • 2017年01月09日 16:06
  • 2007

黑马程序员——Lambda表达式简述

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-一、概述   Lambda表达式(λ expression)是从Java8增加的新语法。大体上相当于其他语言的...

一秒学会Lambda表达式

转载http://blog.csdn.net/u010424693/article/details/17148527 匿名方法:在匿名方法的语法中,delegate表达式关键字是有点多余,因为编译器...

Java 1.8 lambda表达式示例源码

  • 2016年11月28日 11:46
  • 11KB
  • 下载

委托、事件、Lambda表达式Demo

  • 2015年03月12日 18:07
  • 58KB
  • 下载

黑马程序员_java基础-正则表达式

正则表达式 正则表达式的规则: 作用:用于专门操作字符串,学习正则表达式就是在学习一些特殊符号的使用. 特点:用于一些特定的符号来表示一些码操作.简化书写. 好处:可以简化对字符串的操作. 类 Pat...

Java8的lambda表达式

  • 2017年07月24日 11:54
  • 11KB
  • 下载

黑马程序员--正则表达式

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一、 正则表达式 其实是用来操作字符串的一些规则。 好处:正则的出现,对字符串的复杂操...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:黑马程序员 一秒学会Lambda表达式
举报原因:
原因补充:

(最多只允许输入30个字)