2012-06-16 26 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)); 
}