2011-12-15 78 views

回答

2

一個最好的解釋可以在MSDN

找到您可以使用該委託代表可作爲參數傳遞不明確聲明自定義委託的方法。封裝的方法必須與此代理定義的方法簽名相對應。這意味着封裝的方法必須有一個通過值傳遞給它的參數,並且它必須返回一個值。

至於在實施例T參數是輸入參數和布爾的類型是付出方法的返回類型。

3

A Func<T, bool>表示採用T類型的對象並返回bool的函數。它通常被稱爲「謂詞」,用於驗證對象上的條件。

Expression<Func<T, bool>>代表函數的abstract syntax tree,即它的句法結構。它可用於分析函數的代碼以實現各種目的,例如將其轉換爲SQL以針對數據庫執行。

1

它是混淆在第一,但Func<T, bool>描述了返回一個布爾值和接受一個參數爲類型T.

在這種情況下的函數,T是具有PartitionKey屬性的對象,該方法GetPk使用Func<T, bool>匹配實例對象中具有與字符串pk匹配的PartitionKey的所有T條目。

3

只需Func<T, bool>是匿名方法簽名。第一種類型T是輸入參數類型,第二種類型是返回類型。當您考慮您的表示時,這更像是一種方法:

bool AnonMethod(T arg0) 
{ 
    return arg0.PartitionKey == pk; 
} 
1

對於某些背景;在Func<T, TResult>(以及該系列的其餘部分)之前,您必須明確定義委託或使用匿名方法。

FuncAction是作爲在語言中添加lambda表達式的一部分添加的。它們是lambda表達式被鍵入的框架定義委託,但您作爲開發人員也可以用來代替您自己的自定義委託定義。

你可以在這裏得到一個很好的歷史;

http://blogs.msdn.com/b/ericwhite/archive/2006/10/03/lambda-expressions.aspx

相關問題