我在看代碼包含:是否有人可以解釋<Func鍵<T, bool>>在我的一個簡單的方法
public virtual ICollection<T> GetPk(string pk)
{
Expression<Func<T, bool>> predicate = c => c.PartitionKey == pk;
return this.GetAll(predicate);
}
有人能解釋的<Func<T, bool>>
語法?
我在看代碼包含:是否有人可以解釋<Func鍵<T, bool>>在我的一個簡單的方法
public virtual ICollection<T> GetPk(string pk)
{
Expression<Func<T, bool>> predicate = c => c.PartitionKey == pk;
return this.GetAll(predicate);
}
有人能解釋的<Func<T, bool>>
語法?
一個最好的解釋可以在MSDN
找到您可以使用該委託代表可作爲參數傳遞不明確聲明自定義委託的方法。封裝的方法必須與此代理定義的方法簽名相對應。這意味着封裝的方法必須有一個通過值傳遞給它的參數,並且它必須返回一個值。
至於在實施例T參數是輸入參數和布爾的類型是付出方法的返回類型。
我總能找到MSDN是值得一試的事情就是這樣第一,
http://msdn.microsoft.com/en-us/library/bb549151.aspx
通過Maheep毆打,沒看到消息後彈出項。
基本上,你聲明瞭一個匹配簽名的方法,然後可以將它傳遞給調用來獲取數據。
A Func<T, bool>
表示採用T
類型的對象並返回bool
的函數。它通常被稱爲「謂詞」,用於驗證對象上的條件。
Expression<Func<T, bool>>
代表函數的abstract syntax tree,即它的句法結構。它可用於分析函數的代碼以實現各種目的,例如將其轉換爲SQL以針對數據庫執行。
它是混淆在第一,但Func<T, bool>
描述了返回一個布爾值和接受一個參數爲類型T.
在這種情況下的函數,T是具有PartitionKey
屬性的對象,該方法GetPk
使用Func<T, bool>
匹配實例對象中具有與字符串pk
匹配的PartitionKey
的所有T條目。
只需Func<T, bool>
是匿名方法簽名。第一種類型T
是輸入參數類型,第二種類型是返回類型。當您考慮您的表示時,這更像是一種方法:
bool AnonMethod(T arg0)
{
return arg0.PartitionKey == pk;
}
對於某些背景;在Func<T, TResult>
(以及該系列的其餘部分)之前,您必須明確定義委託或使用匿名方法。
Func
和Action
是作爲在語言中添加lambda表達式的一部分添加的。它們是lambda表達式被鍵入的框架定義委託,但您作爲開發人員也可以用來代替您自己的自定義委託定義。
你可以在這裏得到一個很好的歷史;
http://blogs.msdn.com/b/ericwhite/archive/2006/10/03/lambda-expressions.aspx
你對此不甚瞭解嗎? – Oded 2011-12-15 11:17:56