【发布时间】:2010-10-13 06:25:42
【问题描述】:
所以我最近学习了这个使用 Func Delegate 和 Lambda 表达式的新技巧,以避免在我的代码中使用多个验证 if 语句。
所以代码看起来像
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());
}
但我的下一步是我也想做一些错误检查。因此,例如如果 count !=2 在我之前的示例中,我想编写一些错误集合,以便进一步了解更清晰的异常。
所以我一直想知道如何使用类似的 Func 和 Lamdba 表示法来实现这一点?
我确实想出了我的规则检查器类
public class RuleChecker
{
public Dictionary<string, object> DictParam
{
get;
set;
}
public string ErrorMessage
{
get;
set;
}
}
有人可以帮助我如何实现这一目标吗?
【问题讨论】: