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;会让你开始的。使用这种方法,您可以将代码减少到三行。使用| |可以缩短,但老实说,我认为可读性会受到影响。谢谢:-供参考: