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语句。

原文地址:https://www.cnblogs.com/miffylf/p/4026772.html