2012-06-16 51 views
-2

如何爲空值檢查三個不同的文本字段? 我有以下代碼,但它給出了一個錯誤。你可以在if語句中測試三種不同的條件嗎?如何檢查空值的多個文本字段;

public bool IsFieldBlank(string fieldValue) 
    { 
     if (fieldValue != null) 
     { 
      return true; 
     } 
     else 
     { 
      return false; 
     } 
    } 

    private bool ValidateFields() 
    { 
//attempts to check all three fields but will not compile to do syntex 
     if(IsFieldBlank(incidentTextBox.Text),IsFieldBlank(returnTextBox.Text),IsFieldBlank(actionTextBox.Text)) 
     { 
      return true; 
     } 
     else 
     { 
      return false; 

     } 
    } 
+1

布爾值是一種類型。您不需要以「if(someBooleanStatement)」返回true的形式編寫代碼;否則返回false;'只要寫'return(someBooleanStatement)',即'return(fieldValue!= null);' –

+1

簡單地說,在IF語句中有逗號作爲分隔符 - 而實際上你需要在邏輯上比較它們 - 你想檢查ANY是否爲空或ALL是否爲空(前者使用|| OR,後者使用&& AND)。如下所述,字符串已經有了這樣一種方法,使用它,效率更高。 – Wolf5370

回答

1

這是更短:

return string.IsNullOrWhitespace(fieldValue); 

如果你不能在上面.NET 4.0中,你可以使用:

return string.IsNullOrEmpty(fieldValue); 

你仍然必須檢查每個個別。

如果您有一個表單中的這些,您可以遞歸迭代子控件集合併爲每個控件檢查它是否爲TextBox(使用is關鍵字)並檢查它。

+0

或IsNullOrEmpty – Wolf5370

0

你必須做一個這樣的檢查時,使用邏輯與操作。

if(IsFieldBlank(incidentTextBox.Text) && IsFieldBlank(returnTextBox.Text) &&IsFieldBlank(actionTextBox.Text)) 
+0

謝謝,這就是我正在尋找&& – user1460994

+0

請標記爲答案無論哪個幫助你! – Illuminati

0

你需要從

if(IsFieldBlank(incidentTextBox.Text),IsFieldBlank(returnTextBox.Text),IsFieldBlank (actionTextBox.Text)) 
    { 
     return true; 
    } 

改變你的if語句這樣:

if((IsFieldBlank(incidentTextBox.Text))&&(IsFieldBlank(returnTextBox.Text))&&(IsFieldBlank(actionTextBox.Text))) 
    { 
     return true; 
    } 

這將使你的代碼進行編譯。如果你的所有文本框都是空白的,這將返回true。如果你想讓它返回true,如果它們中的任何一個都是空的,那麼你將需要使用OR運算符||

+0

謝謝,這將有助於 – user1460994

+0

沒問題。樂意效勞 –

0
private bool ValidateFields()  
{ 
     return !(string.IsNullOrEmpty(incidentTextBox.Text) || string.IsNullOrEmpty(returnTextBox.Text) || string.IsNullOrEmpty(actionTextBox.Text)); 
}