C# 验证方法,用于在第一次出错后返回结果
第一次错误验证后返回结果的最佳方法是什么。我希望实现相同的功能,而无需在每次验证后检查结果C# 验证方法,用于在第一次出错后返回结果,c#,C#,第一次错误验证后返回结果的最佳方法是什么。我希望实现相同的功能,而无需在每次验证后检查结果 bool ValidateMany() { bool result=true; if(ValidateFirstProperty){ result = ValidateFirst(); if(result == false) return result; } if(ValidateSecondProperty){ result=ValidateSecond();
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;
}
您可以将它们全部放在同一个if块中,如果上一个与条件不匹配,它将只移动到下一个&&中
bool ValidateMany()
{
if(ValidateFirst() && ValidateSecond() && ValidateThird())
{
return true;
}
return false;
}
或者将它们组合成一行
bool ValidateMany()
{
return ValidateFirst() && ValidateSecond() && ValidateThird();
}
这是更干净的版本: 返回ValidateFirst&&ValidateSecond&&ValidateThird 我可以试试这个: 布尔瓦塔曼尼 { 返回ValidateFirst&&ValidateSecond&&ValidateThird; }
更改问题后,这是简短的版本:
return (!ValidateFirstProperty || ValidateFirst())
&& (!ValidateSecondProperty || ValidateSecond())
&& ValidateThird();
但是如果您想输出或记录验证失败的信息,您将丢失该信息。如果您以前没有看到过&&可能值得一读。这是不合适的@bugrasitekar。你只是明显地改变了问题,浪费了所有为原始问题写答案的人的时间。这不是一个“猜测问题将如何改变”的游戏。很抱歉,我刚意识到这是我应该在开始时编写的方式,并更改了我的伪代码。是的,这是最后一个问题。如果ValidateFirstProperty&!ValidateFirst返回false;会让你开始的。使用这种方法,您可以将代码减少到三行。使用| |可以缩短,但老实说,我认为可读性会受到影响。谢谢:-供参考: