匿名方法和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));
        }
	}
}

  

posted on 2013-11-29 14:07  wp456  阅读(165)  评论(0)    收藏  举报

导航