3
所以我最近學會了使用Func Delegate和Lambda表達式的新技巧,以避免在我的代碼中多次驗證if語句。錯誤檢查使用Func委託
因此,代碼看起來像
public static void SetParameters(Dictionary<string,object> param)
{
Func<Dictionary<string, object>, bool>[] eval =
{
e => e != null ,
e => e.Count ==2 ,
e => e.ContainsKey("Star"),
e => e.ContainsKey("Wars")
};
var isValid = eval.All(rule => rule(param));
Console.WriteLine(isValid.ToString());
}
,但我的下一個步驟是我希望做一些錯誤檢查爲好。因此對於例如如果在我之前的例子中計數!= 2,我想編寫一些錯誤集合以獲得更清晰的異常。
所以我一直想知道如何使用類似的Func和Lamdba符號來實現該功能?
我拿出我的規則檢查類
public class RuleChecker
{
public Dictionary<string, object> DictParam
{
get;
set;
}
public string ErrorMessage
{
get;
set;
}
}
有人可以幫爲我怎樣才能做到這一點?
尼斯。但是,在第二種解決方案中,這不應該是(!測試)嗎? – 2010-10-13 08:23:19
hahahah是 - 謝謝! – 2010-10-13 08:47:00
感謝Preet,這工作。但我想知道是否有像EvaluteWithError Delegate這樣的更通用的方法,而不是類,我可以重複使用它,而不是每次在每個類中創建Func <...>? – netmatrix01 2010-10-13 10:40:02