1. 程式人生 > >C#中的 lambda表示式

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表示式中,引數不用指定型別 , 因為在委託中就已經指定了型別了