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