zoukankan      html  css  js  c++  java
  • 详解Lambda

    定义好委托:

    public delegate int FirDelegate(int a);
    
    public delegate int SecDelegate(int a,int b);
    
    public delegate string ThrDelegate(int a);
    

    lambda表达式其实是个匿名函数,第一个lambda表达式:

    FirDelegate fir = p => p + 10;//实例化一个委托
    
    fir(100);//调用,结果为110

    第二个lambda表达式:

    SecDelegate sec = (p,q) => p + q;//实例化一个委托
    sec(20,30);//调用,结果为50

    第三个lambda表达式:

     ThrDelegate thr = p =>
    {
       if (p < 50)
      {
          return "输入了小于50的数!";
      }
      else
      {
          return "这个数不小于50!好大!";
      }
    };
    thr(30);//调用,结果为"输入了小于50的数!"

     第四个lambda表达式,希望传入两个int参数,返回string的结果:

    Func<int,int,string> four = (p,q) =>
    {
      return p + " + " + q + " 的结果是: " + (p + q);
    };
    four(10,20);//调用,结果为"10 + 20 的结果是: 30"

    我们本应该定义一个委托:public delegate string FourDelegate(int a,int b);

    然后给它实例化:FourDelegate four = ......;

    然而,Func<param[],out TResult>给我们免去了这一步骤,需要任意个任意类型任意返回值的委托不再需要定义了。

    前面N个是参数及类型,最后一个是返回值及类型。

    关于lambda表达式中的return:

    有大括号的,需加return。

    无大括号的,不能加return。

  • 相关阅读:
    Ubuntu 14.04 配置FTP
    python 命名规范
    Windows 多用户远程访问 Ubuntu 14.04桌面
    ubuntu 安装Matlab 解决显示中文乱码
    形式参数、实际参数和值传递、引用传递
    关于Hibernate中的临时态, 持久态, 游离态
    HTTP错误
    SpringMVC注解
    java变量的命名使用规则
    字节流与字符流的区别详解
  • 原文地址:https://www.cnblogs.com/dengshaojun/p/3797040.html
Copyright © 2011-2022 走看看