2014-01-13 16 views
0

我有一個驗證方法,我打電話來驗證我的表單上的字段。我想把它們放在if語句中,看看它們是否返回true,然後在我的else語句中將它們插入到我的數據庫中。我已經聲明瞭方法並聲明瞭插入方法。我如何寫這個if語句來檢查所有的驗證方法是否返回true?包裝多個方法調用到一個if語句

我的方法驗證調用:

formValidation(firstnameTextBox.Text); 
formValidation(lastnameTextBox.Text); 
formValidation(usernameTextBox.Text); 
formValidation(passwordTextBox.Text); 
formValidation(emailTextBox.Text); 
formValidation(cellnumberTextBox.Text); 
+0

是否'formValidation'目前返回一個值? –

+1

@GrantWinney請參閱[他的上一個問題](http://stackoverflow.com/questions/21094259/creating-a-method-for-multiple-field-validations) – Servy

回答

4

只需使用AND運算符(&&

if(formValidation(firstnameTextBox.Text) && 
formValidation(lastnameTextBox.Text) && 
formValidation(usernameTextBox.Text) && 
formValidation(passwordTextBox.Text) && 
formValidation(emailTextBox.Text) && 
formValidation(cellnumberTextBox.Text)) 
{ 
} 

由於mentioned in the comments,如果你希望所有的方法來運行(顯示相關的錯誤對於每個字段)無論如何,只要遇到第一個錯誤就不會停下來,您可以使用非短路AND,即運算符&

或者,你可以把文本框到一個集合並作用於該集合:

var fieldsToValidate = new TextBox[]{firstnameTextBox, lastnameTextBox, ...} 
if(fieldsToValidate.All(field => formValidation(field.Text)); 
+0

Servy我不知道這將是那麼簡單,但。 –

+0

不完全是問題,但如果你想確保所有這些都可以運行,只需使用一個&符號。正如所寫的,「formValidation」函數只會被調用,直到返回第一個假(懶惰評估) –

+0

@drew_w你是什麼意思? –