第一次错误验证后返回结果的最佳方法是什么。我想实现相同的功能,而无需在每次验证后检查结果。
bool ValidateMany()
{
bool result=true;
if(ValidateFirstProperty){
result = ValidateFirst();
if(result == false)
return result;
}
if(ValidateSecondProperty){
result=ValidateSecond();
if(result == false)
return result;
}
//always validate third one
result=ValidateThird();
if(result == false)
return result;
return result;
}
答案 0 :(得分:5)
您可以将它们全部放在相同的if块中,如果前一个不符合条件,它将仅移至下一个&&。
bool ValidateMany()
{
if(ValidateFirst() && ValidateSecond() && ValidateThird())
{
return true;
}
return false;
}
或将它们组合成一行。
bool ValidateMany()
{
return ValidateFirst() && ValidateSecond() && ValidateThird();
}
答案 1 :(得分:4)
我可以尝试:
bool ValidateMany()
{
return ValidateFirst() && ValidateSecond() && ValidateThird();
}
答案 2 :(得分:3)
更改问题后,这是简称:
return (!ValidateFirstProperty || ValidateFirst())
&& (!ValidateSecondProperty || ValidateSecond())
&& ValidateThird();
但是,如果您要输出或记录验证,您将丢失验证失败的信息。
答案 3 :(得分:1)
这是更干净的版本:
return ValidateFirst() && ValidateSecond() && ValidateThird();