Lambda表達式


  lambda表達式是對匿名方法的一種改進,具有更加簡潔的語法和更易理解的形式,lambda表達式可以包括表達式和語句,並且可以用與創建委托或表達式目錄樹類型。

  lambda表達式都使用Lambda運算符=>,讀作goes to。該Lambda運算符的左邊是輸入參數,右邊包含表達式或者語句塊。

Lambda表達式的聲明:(參數列表)=>{方法體}

  其中的參數列表和普通方法的參數列表相同,Lambda表達式是升級版的匿名方法,如下面語法所示:

返回類型  方法名(參數){方法體}  //普通方法
delegate (參數列表) {方法體}  //匿名方法
(參數列表)=>{方法體}  //

 下面舉個例子:

//求兩個整數最大值
            (int x,int y)=>{return x>y?x:y;}
            //決斷一個字符串是否是數字
            (string text)=>
            {
                double d;
                return double.TryParse(text,out d);
            }
            //輸入hello world
            ()=>{Console.WriteLine("hello world");}

特別需要指出的是如果lambda表達式沒有參數,則參數為空,但必須要圓括號。

下面看一下lambda表達式的更簡潔語法:

(1)如果lambda表達式的參數類型是可以通過上下文推斷時,參數類型也可以省略,如下代碼所示

(x,y)=>{return x>y?x:y;}

(2)若果lambda表達式只有一個參數且參數類型被省略,則參數列表外面的圓括號也可以省略,如下代碼

x=>{return x++;}

(3)如果lambda語句的方法體只有一條return語句,且return語句有返回類型,則return關鍵字、分號、大括號都可以省略,此時lambda表達式的方法體只剩下一個表達式,如下例子,

(x,y)=>x>y?x:y;
//(x,y)=>{retrun x>y?x:y;}
x=>x++;
//x=>{retrun x++;}

舉例說明lambda表達式的應用:

輸出的結果是:

 

皮膚

初來乍到,結交愛好技術的好友交流分享。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM