如何检查多变量是否为空?

时间:2015-12-08 13:39:32

标签: vb.net

我知道如何检查变量是否为空,但我要做的是在空变量上显示一条消息,例如:

    Dim server_name = TextBox1.Text
    Dim username = TextBox2.Text
    Dim password = TextBox3.Text
    Dim database = TextBox4.Text

    If server_name.Length > 0 And username.Length > 0 And password.Length > 0 And database.Length > 0 Then

    End If

如何看待我有多个条件,所以如果server_name为空,我想显示一条消息

  

服务器名称字段未正确填写

如果没有别的话可以这样做吗?

2 个答案:

答案 0 :(得分:3)

即使你不喜欢,我也会使用If...。但是,如果你想要一些“更优雅”的东西,你可以使用一个集合Linq

Dim allFields = New List(Of KeyValuePair(Of String, String)) From {
    New KeyValuePair(Of String, String)("Server name", server_name),
    New KeyValuePair(Of String, String)("User name", username),
    New KeyValuePair(Of String, String)("Password", password),
    New KeyValuePair(Of String, String)("Database", database)
}

Dim invalids = From kv In allFields
               Where String.IsNullOrEmpty(kv.Value) 

For Each invalid In invalids
    Console.WriteLine("{0} field isn't filled correctly", invalid.Key)
Next
  

另一个问题是,可以将前景色设置为红色   foreach中的空场?

是的,那么您需要存储TextBox而不是Text ValueTextBox。然后,您可以在循环中设置Dim allFields As New List(Of KeyValuePair(Of String, TextBox)) From { New KeyValuePair(Of String, TextBox)("Server name", TextBox1), New KeyValuePair(Of String, TextBox)("User name", TextBox2), New KeyValuePair(Of String, TextBox)("Password", TextBox3), New KeyValuePair(Of String, TextBox)("Database", TextBox4) } Dim invalids = From kv In allFields Where String.IsNullOrEmpty(kv.Value.Text) For Each invalid In invalids Console.WriteLine("{0} field isn't filled correctly", invalid.Key) invalid.Value.ForeColor = Drawing.Color.Red Next 的颜色:

For Each

请注意,这还有另一个好处:您甚至可以将此列表声明为类(表单)中的字段。所以你只需要声明并初始化一次。如果在TxtPassword执行LINQ查询,它将使用文本框中的当前值自动评估它,而不是初始化列表时的初始值。附注:您应该使用更有意义的名称,例如TextBox3而不是class ATest { @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); @Mock EdocumentDAO dao; @InjectMocks A a; @Test public void the_test() { doReturn("DOC_ID").when(dao).saveIndocRepo(); a.createDocument(docType); } }

答案 1 :(得分:0)

有很多方法可以做到这一点,我给你举个例子:

Dim s As String() = {TextBox1.Text, TextBox2.Text, TextBox3.Text, TextBox4.Text}
If String.Join("", s).Length > 0 Then
    ' program logic
End If

实际上,您正在创建一个字符串数组,然后加入它们并检查最终字符串的长度。