介紹:
“Lambda表達式”(lambda expression)是一個匿名函數,在C#3.0中引入了lambda表達式,它是對匿名函數的一種簡化,可以包含表達式和語句,並且可用於創建委托或表達式目錄樹類型。
如何創建
格式:( 形參列表 ) => { 函數體 }
若要創建 Lambda表達式,需要在
Lambda運算符=>左側指定輸入參數(如果有),然後在另一側輸入表達式或語句塊。例如,lambda表達式
x => x * x指定名為 x的參數並返回 x的平方值。如下面的示例所示,你可以將此表達式分配給委托類型:<喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vc3Ryb25nPjwvcD4KPHA+PC9wPgo8cHJlIGNsYXNzPQ=="brush:java;">delegate int del(int i);
static void Main(string[] args)
{
del myDelegate = x => x *x;
int j = myDelegate(5); //j = 25
}
注意:函數體多於一條語句的可用大括號括起。 以上函數體也可以寫成 使用 Lambda表達式 => 運算符具有與賦值運算符 (=) 相同的優先級並且是右結合運算 僅當 lambda 只有一個輸入參數時,括號才是可選的;否則括號是必需的。括號內的兩個或更多輸入參數使用逗號加以分隔: (x,y) => x == y 使用Lamdba語句 語句 lambda 與表達式 lambda 表達式類似,只是語句括在大括號中: 代碼中如何利用Lamdba Lambda 在基於方法的 LINQ 查詢中用作標准查詢運算符方法(如Where)的參數。參數是委托類型System.Func 看實例 可以將委托實例化為 Func return中的load方法實際上是一個具有泛型的委托,p為繼承實現了SqlClauseBuilderUW的方法 小結: 綜合應用可以看出Lamdba可以簡化查詢的方法,並且在Linq的使用中多與泛型委托,枚舉的where方法結合使用。是查詢方式簡化了很多,但是內部構造卻與匿名函數相同的.也是剛剛接觸了解,不足之處還請諒解。
del myDelegate = x => { return x * x;};
delegatevoid TestDelegate(string s);
…
TestDelegatemyDel = n => { string s = n + " " + "World";Console.WriteLine(s); };
myDel("Hello");
public delegate TResult Func
Func
//項目中用到的一個小例子
public CommodityCollection Load(string type)
{
return this.Load(p =>
{
p.AppendItem("Code",type);
});
}
[Serializable]
public abstract class SqlClauseBuilderUW : SqlClauseBuilderIUW
{
protected SqlClauseBuilderUW();
public SqlClauseBuilderUW AppendItem
public TCollection Load(Action
namespaceSystem
{
// 摘要:
// 封裝一個方法,該方法只有一個參數並且不返回值。
//
// 參數:
// obj:
// 此委托封裝的方法的參數。
//
// 類型參數:
// T:
// 此委托封裝的方法的參數類型。
public delegate void Action