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