任何人都可以解釋什麼是LINQ,Lambda,匿名方法,代表是什麼意思?LINQ vs Lambda vs匿名方法vs代表
這3個如何彼此不同?
一個可以替換另一個嗎?
我沒有得到任何具體的答案,當我做谷歌搜索
任何人都可以解釋什麼是LINQ,Lambda,匿名方法,代表是什麼意思?LINQ vs Lambda vs匿名方法vs代表
這3個如何彼此不同?
一個可以替換另一個嗎?
我沒有得到任何具體的答案,當我做谷歌搜索
LINQ是一個廣泛的技術名稱,涵蓋了大量的.NET 3.5和C#3.0更改; 「用語言進行查詢」以及更多。
委託與函數指針相當;一「的方法處理」作爲一個對象,如果你喜歡,即
Func<int,int,int> add = (a,b) => a+b;
是書面委託,我就可以調用的方式。代表們還支持事件和其他回調方法。
匿名方法是創建委託實例,例如2.0速記:
someObj.SomeEvent += delegate {
DoSomething();
};
他們還通過「捕獲變量」(以上未圖示)引入全面關閉到語言。 C#3.0引入lambda表達式,其可以產生相同匿名方法:
someObj.SomeEvent += (s,a) => DoSomething();
但可以也被編譯成表達式樹針對(例如)數據庫完全LINQ。例如,您不能針對SQL Server運行委託!但:
IQueryable<MyData> source = ...
var filtered = source.Where(row => row.Name == "fred");
可以被翻譯成SQL,因爲它被編譯成一個表達式樹(System.Linq.Expression
)。
所以:
LINQLambda Expressionsanonymous methodsdelegates
這些都是從MSDN的完整的解釋,大部分的例子...
雖然該鏈接的標題是Anonymous methods它涵蓋了代表,匿名方法和lambda表達式。
該列表中有4件東西... – 2010-04-16 10:49:00
<敵對反應> – TheHurt 2010-04-16 10:57:49
@Sri Kumar:我沒有投下票,但我想這是一個混合的事實,這是現成的信息和你的英語並不完美。 – 2010-04-16 16:53:21