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

    自C#3.0开始,就可以使用一种新语法把实现代码赋予委托:Lambda表达式。只要有委托参数类型的地方,就可以使用Lambda表达式

    class Program

    {

      static void Main()

      {

        string mid = ",middle part,";

        Fun<string,string>lambda = param =>

        {

          param+=mid;

          param+="and this was added to the string.";

          return param;

        };

        Console.WriteLine(lambda("Start of string"));

      }

    }

    Lambda运算符“ =>”的左边列出了需要的参数。Lambda运算符的右边定义了赋予lambda变 量的方法的实现代码.

    参数

    Lambda表达式有几种定义参数的方式。如果只有一个参数,只写出参数名就足够了。下面的 Lambda表达式使用了参数s。 因为委托类型定义了一个string参数,所 以s的类型就是string。实现 代码调用string.Format()方法来返回一个字符串,在调用该委托时,.就把字符串写到控制台上 

    Func<string,string>oneParam = s => String.Format( "change upperoase {0}"、 s.ToUpper());

    Console.WriteLine(oneParam("test")); 

    如果委托使用多个参数,就把参数名放在花括号中。这里参数x和 y的类型是double,由 Fmc<double,double,double>委托定义 :
    Func(double,double,double> twoParams = (x、 y) =>x * y;

    Console.WriteLine(two Params(3,2));

    多行代码

    如果Lambda表达式只有一条语句,在方法块内就不需要花括号和reum语句,因为编译器会添加 一条隐式的return语句。但是,如果在Lambda表达式的实现代码中需要多条语句,就必须添加花括号和return语句。

  • 相关阅读:
    python-装饰器
    Django-session相关操作+redis
    Could not connect to Redis at 127.0.0.1:6379: 由于目标计算机积极拒绝,无法连接。redis启动失败
    mybatis高级特性
    Elasticsearch从入门到熟练使用
    sharding-jdbc从入门到熟练使用
    mysql主从复制搭建(普通安装和docker方式)
    领域驱动设计入门及简单落地
    docker的一些基本命令
    docker发布jar包项目
  • 原文地址:https://www.cnblogs.com/miffylf/p/4026772.html
Copyright © 2011-2022 走看看