一直不太明白lambda,看到個寫得很通俗的lambda,來轉下
lambda表示式詳解(轉張龍豪)
前言 1、天真熱,程式設計師活著不易,星期天,也要頂著火辣辣的太陽,總結這些東西。
2、夸夸lambda吧:簡化了匿名委託的使用,讓你讓**更加簡潔,優雅。據說它是微軟自c#1.0後新增的最重要的功能之一。
lambda簡介
lambda運算子:所有的lambda表示式都是用新的lambda運算子 」 => 「,可以叫他,「轉到」或者 「成為」。運算子將表示式分為兩部分,左邊指定輸入引數,右邊是lambda的主體。
lambda表示式:
1.乙個引數:param=>expr
2.多個引數:(param-list)=>expr
上面這些東西,記著,下面我們開始應用並闡述lambda,讓你樂在其中。
複製**
namespace 闡述lambda
public int age
} class program
; persons.add(p);
}return persons;
}static void main(string args)
}} 複製**
看啦上面的例子,相信你能看出它確實是個甜棗,呵呵,下面我們來看下(p=>p.age>6)這樣的表示式,到底是怎麼回事。。
首先我們看下委託
複製**
//委託 逛超市
delegate int guangchaoshi(int a);
static void main(string args)
//結賬
public static int jiezhang(int a)
複製**
再看表示式
複製**
//委託 逛超市
delegate int guangchaoshi(int a);
static void main(string args)
複製**
委託跟表示式的兩段**,我們可以看出一些東東吧:其實表示式(p => p + 10;)中的 p 就代表委託方法中的引數,而表示式符號右邊的 p+10,就是委託方法中的返回結果。 大俠繞道,小蝦理解下。
下面再上兩個稍微複雜點的理解理解。
1.多引數的
複製**
//委託 逛超市
delegate int guangchaoshi(int a,int b);
static void main(string args)
複製**
2. lambda主體運算複雜
複製**
///
/// 委託 逛超市
///
/// 花費
/// 付錢
/// 找零
delegate int guangchaoshi(int a,int b);
static void main(string args)
else
};
console.writeline(gwl(10,100) + ""); //列印80,z對應引數b,p對應引數a
console.readkey();
}
複製**
上面這些例子,好好理解下,下面我要介紹乙個系統指定的 fun委託。
func委託
t 是引數型別,這是乙個泛型型別的委託,用起來很方便的。
先上例子
複製**
static void main(string args)
{ func
Lambda表示式詳解
1 天真熱,程式設計師活著不易,星期天,也要頂著火辣辣的太陽,總結這些東西。2 夸夸lambda吧 簡化了匿名委託的使用,讓你讓 更加簡潔,優雅。據說它是微軟自c 1.0後新增的最重要的功能之一。lambda運算子 所有的lambda表示式都是用新的lambda運算子 可以叫他,轉到 或者 成為 運...
Lambda表示式詳解
1 天真冷啊,程式設計師活著不易,星期天,也要嗖嗖的北風,總結這些東西。2 夸夸lambda吧 簡化了匿名委託的使用,讓你讓 更加簡潔,優雅。據說它是微軟自c 1.0後新增的最重要的功能之一。lambda運算子 所有的lambda表示式都是用新的lambda運算子 可以叫他,轉到 或者 成為 運算子...
Lambda表示式詳解
lambda表示式在很多語言中應用,lambda表示式可以當作委託中的一種變形,委託的構建方便程式設計人員能夠在程式中傳入函式,相當於回掉函式。lambda表示式可以方便的構造匿名函式,如果 中裡面存有大量小的功能函式,而這些函式只被呼叫一次,不妨將他們重構成lambda表示式。比如需要計算a b,...