Lambda表达式实例

简单的说lambda是由.NET Framework1.0的委托、.NET Framework2.0的匿名方法演变而来的。但他与匿名方法是有点区别的,匿名方法需要指定参数的类型,而lambda表达式则不用。
lambda表达式的语法是:(输入参数)=>(方法体/表达式)
现将举个最简单的例子
public calss Test
{
   //定义一个返回值为string类型的委托变量
   public delegate strig delTransfer(string s);
   public test()
   {
   }

   private void Lambda_Click(object sender, EventArgs e)
        {
            //Lambda表达式的由来

            //.NET Framework 1.0委托--函数指针
            //delTransfer trans = new delTranfore(ToPascal); //实例化委托,和方法关联
            //Console.WriteLine(trans("abcdefgafateateaft"));

            //.NET Framework 2.0 匿名方法
              //delTransfer trans = delegate(string s) {return s.Substring(0, 1).ToUpper() + s.Substring(1); };
              //Console.WriteLine(trans("abcdefgafateateaft"));

            //.NET Framework 3.5 Lambda表达式 两种写法, =>标识左边表示方法参数(可以为参数加上类型),右边表示方法体
           // delTransfer trans = (s) => (s.Substring(0, 1).ToUpper() + s.Substring(1));
           // delTransfer trans = s=> s.Substring(0, 1).ToUpper() + s.Substring(1);
            Console.WriteLine(trans("abcdefgafateateaft")); 
        }

     //定义和委托相关联的方法
   private string ToPascal(this string s)
    {
        return s.Substring(0, 1).ToUpper() + s.Substring(1);
    }
}

你可能感兴趣的:(lambda)