C#中的 lambda表达式

1:lambda表达式是基于委托来实现的,是匿名函数的另外一种根伟抽象的书写方法

  首先来看看匿名函数(匿名方法): 有一些方法只使用一次,就不用谢一个具体的方法来提供调用。案列 

namespace 匿名方法
{

    //委托 

   public delegate void DelCompare();//无参数无返回值的委托

   public delegate void DelComparePram();  /  /有参数,无返回值的委托

   public delegate int DelComparePramRet(int a , int b );  /  /有参数,有返回值的委托
    class Program
    {
    
        static void Main(string[] args)
        {

          DelCompare   delpare1  =   delegate()  { Console.WriteLine("匿名函数方法体") ; } ;

           delpare1 ();   / /输出 

          DelComparePram   delpare2  =  delegate(string   str)  { Console.WriteLine("带参数的匿名函数方法体:参数是  :" +str) ; } ;

          delpare2  ("张三");//输出

          DelComparePramRet     delpare3  =  delegate(int a ,int b )  { return   a + b ; } ;

          Console.WriteLine(delpare3(10 , 20 ) )  ;   //这里输出30,因为匿名函数中是对两个值进行了相加

         / /上面就是匿名函数的,无参带参无返回值带参有返回值的三种写法,匿名函数继续简化后就是lambda表达式的写法了,如下      =  ()  => {  };

          DelCompare   d_lambda  = ()  =>   { Console.WriteLine( "匿名无参方法体" ) ;  } ;

         d_lambda ();

          DelComparePram   d_lambdaPram str   => { Console.WriteLine("参数是 :" + str) ;  };  / /带一个参数 可以省略小括号

         d_lambdaPram ("传入参数");

          DelComparePramRet     d_delpareRet = ( x , y ) => {  return   x  +  y  ; };

          int   sum = d_delpareRet(10 , 20 );    / /返回 10 和 20 的和。

         }

     }

}

结尾,lambda表达式是匿名函数的一种更为简单的写法,在有参数的lambda表达式中,参数不用指定类型 , 因为在委托中就已经指定了类型了

猜你喜欢

转载自blog.csdn.net/m0_37852399/article/details/83895172
今日推荐