zoukankan      html  css  js  c++  java
  • Lambda表达式【转】

    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

  • 相关阅读:
    深入了解抽象类和接口
    关于Hibernate查询对象调用set方法自动同步到数据库解决方案
    【鸽子的迷信(一)】python导入由excel文件改后缀变成的csv文件出现乱码错误(ParserError:Error tokenizing data. C error:)
    《计算机操作系统》CH1操作系统引论思维导图整理
    IntelliJ IDEA创建一个Maven项目
    C++实验三
    小练习
    C++实验二
    C++的ch1&ch2的整理
    C++实验一
  • 原文地址:https://www.cnblogs.com/zbo/p/3236074.html
Copyright © 2011-2022 走看看