第一次错误后返回结果的验证方法

时间:2019-07-18 14:32:18

标签: c#

第一次错误验证后返回结果的最佳方法是什么。我想实现相同的功能,而无需在每次验证后检查结果。

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;
}

4 个答案:

答案 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();