我遇到了一个问题,因为我在窗体中执行了大约5次验证检查。其中每个都位于其自己的方法Is_XXX_Valid()
。我正在寻找一种方法来确定每种方法return true;
否则应显示错误消息。如何在执行操作前检查所有方法是否正确
然而这是哪里出了问题出现的时候,我有工作的一部分,因为它无法运行的后续方法,如果前面的方法返回false
这里是我使用的当前代码的解决方案:
private void Button_Click(object sender, EventArgs e)
{
DialogResult validation_msgbox = MessageBox.Show("Are you sure you would like to submit this form?", "Submit Form?", MessageBoxButtons.YesNo);
// Run each validaion check
if (IsAAAValid() && IsBBBValid())
{
//Continue and submit data
}
else
{
//Display the errors
DialogResult Textbox_validation = MessageBox.Show(ErrorText, "Some errors were found.", MessageBoxButtons.OK);
}
}
使用代码上面作为一个例子,如果IsAAAValid()
返回假,则不执行第二方法,并且因此内的数据未通过验证,从而导致不正确的对话框如果发现多个错误。
谢谢!
'&&'是短路的,所以第一个错误返回将导致不执行任何后续条件。只需使用'&',因为它不是短路。 –
你不能只为每个方法调用做bool变量,并且对bool变量执行if()吗? – wentimo
如果你真的需要所有的方法来运行,那么我认为你的方法的责任没有很好的命名/定义。我不希望名为'IsXXX'的方法有你所暗示的副作用。 – sstan