以下代码只是一个例子。字符串的谓词是a 我想知道下面的代码是否可能写得不那么简单:
public static bool IsValid(Predicate<string> condition, string test)
{
return condition(test);
}
电话:
Validator.IsValid(s => s.StartsWith("Test"), "Test with a lambda expression")
修改
很抱歉缺乏细节。上面的代码只是一个例子,但IsValid方法将采用Predicate参数,而不是Predicate,所以这里签名:
public static bool IsValid(Predicate<T> condition, T obj)
{
return condition(obj);
}
答案 0 :(得分:1)
是的,可以写得更简单:
"Test with a lambda expression".StartsWith("Test")
你的IsValid
方法在这里绝对没有增加任何价值...如果您知道要传递给IsValid
的谓词,为什么不能直接评估它而不是调用“帮助器” “方法?
答案 1 :(得分:1)
我个人认为尽可能将lambda作为最后一个参数更简洁,因为它使代码更容易阅读:
public static bool IsValid(T obj, Predicate<T> condition)
{
return condition(obj);
}
Validator.IsValue(foo,f=>f.Value==1);