我遇到了一個問題,因爲我在窗體中執行了大約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