c#
delegate int del(int i);static void main(string args)
若要建立表示式目錄樹型別:
c#
using system.linq.expressions;}}
=>
表示式 lambda
(input parameters) => expression
c#
(x, y) => x == y
c#
(int x, string s) => s.length > x
使用空括號指定零個輸入引數:
c#
() => somemethod()
語句 lambda
語句 lambda 與表示式 lambda 表示式類似,只是語句括在大括號中:
(input parameters) =>
語句 lambda 的主體可以包含任意數量的語句;但是,實際上通常不會多於兩個或三個。
c#
delegate void testdelegate(string s);…testdelegate mydel = n => ;
mydel("hello");
像匿名方法一樣,語句 lambda 同樣不能用於建立表示式目錄樹。
非同步 lambda
c#
public partial class form1 : formprivate async void button1_click(object sender, eventargs e)
async task examplemethodasync()
}
c#
public partial class form1 : form; }
async task examplemethodasync()
}
有關如何建立和使用非同步方法的詳細資訊,請參閱使用 async 和 await 的非同步程式設計(c# 和 visual basic)。
帶有標準查詢運算子的 lambda
c#
public delegate tresult func(targ0 arg0)
c#
funcmyfunc = x => x == 5;bool result = myfunc(4); // returns false of course
此處顯示了乙個標準查詢運算子,count
c#
int numbers = ;int oddnumbers = numbers.count(n => n % 2 == 1);
c#
var firstnumberslessthan6 = numbers.takewhile(n => n < 6);
c#
var firstsmallnumbers = numbers.takewhile((n, index) => n >= index);
lambda 中的型別推理
c#
customers.where(c => c.city == "london");
lambda 的一般規則如下:
lambda 表示式中的變數範圍
c#
delegate bool d();delegate bool d2(int i);
class test
; // del2 will be invoked after testmethod goes out of scope.
del2 = (x) => ;
// demonstrate value of j:
// output: j = 0
// the delegate has not been invoked yet.
console.writeline("j = ", j); // invoke the delegate.
bool boolresult = del();
// output: j = 10 b = true
console.writeline("j = . b = ", j, boolresult);
}static void main()
}
下列規則適用於 lambda 表示式中的變數範圍:
c# 語言規範
有關更多資訊,請參見c# 語言規範。 該語言規範是 c# 語法和用法的權威資料。
重要章節
c# 3.0 手冊,第三版:為 c# 3.0 程式設計師提供的 250 多個解決方案中的委託、事件和 lambda 表示式
另請參閱
c# 程式設計指南
linq (language-integrated query)
匿名方法(c# 程式設計指南)
is(c# 參考)
表示式樹(c# 和 visual basic)
visual studio 2008 c# 示例(請參閱 linq 示例查詢檔案和 xquery 程式)
遞迴 lambda 表示式
Lambda 表示式(C 程式設計指南)
最近在研究arcgis runtime,被下面 中的這個符號搞暈了 總感覺這是乙個函式,去微軟的 查了查,果不其然,這個也算乙個新的東西吧,學習了,感謝群友的幫忙。localserver.initializeasync graphicslayer mymap.layers graphicslayer...
Lambda 表示式(C 程式設計指南)
lambda 表示式是一種可用於建立委託或表示式目錄樹型別的匿名函式。通過使用 lambda 表示式,可以寫入可作為引數傳遞或作為函式呼叫值返回的本地函式。lambda 表示式對於編寫 linq 查詢表示式特別有用。若要建立 lambda 表示式,需要在 lambda 運算子 左側指定輸入引數 如果...
lambda表示式 lambda表示式
1.概述 c 11 中的 lambda 表示式用於定義並建立匿名的函式物件,以簡化程式設計工作。lambda 的語法形式如下 函式物件引數 操作符過載函式引數 mutable 或 exception 宣告 返回值型別可以看到,lambda 主要分為五個部分 函式物件引數 操作符過載函式引數 muta...