Lambda表達式【轉】

lambda表達式是對匿名方法的一種改進,具備更加簡潔的語法和更易理解的形式,lambda表達式能夠包括表達式和語句,而且能夠用與建立委託或表達式目錄樹類型。html

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

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

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

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

 下面舉個例子:blog

複製代碼
//求兩個整數最大值
            (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表達式的更簡潔語法:string

(1)若是lambda表達式的參數類型是能夠經過上下午推斷時,參數列表外面的圓括號也能夠省略,以下代碼所示it

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

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

x=>{return x++;}

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

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

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

輸出的結果是:

轉自http://www.cnblogs.com/flykai/p/3235827.html

相關文章
相關標籤/搜索