匿名方法和Lambda表达式的使用
/* 匿名方法和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)); } } }