/*
匿名方法和Lambda表达式的使用
*/
using System;
namespace Frank
{
public class Test
{
public static void Main(string[] args)
{
string mid = ", middle part,";
Func<string,string> anonDel = delegate(string param)//创建匿名方法交给委托
{
param += mid;
param += " and this was added to the string.";
return param;
};
//C#3.0发布以来就用Lambda表达式了
//只要有委托参数的地方就可以使用Lambda表达式
Func<string,string> anonDel2 = param =>//Lambda表达式代替上面的匿名方法。
{
param += mid;
param += " and this was added to the string2.";
return param;
};
System.Console.WriteLine(anonDel.Invoke("one,")+"-----------"+anonDel2("two,"));//执行单个参数的委托方法
//演示多个参数的委托方法 传入double,double。返回double类型的参数
Func<double,double,double> func = (x,y)=>//也可以写成 =(x,y)=> x *y; 系统自动返回(只限一条语句的时候省略大括号)
{
return x*y;
};
System.Console.WriteLine(func(1.00,2.00));
//也可以给变量增加类型
Func<double,double,double> func2 = (double x,double y)=> x*y;//通常不要省略大括号,这样子会变得难以阅读。
System.Console.WriteLine(func2.Invoke(20,25));
}
}
}