在vb.net中,是否有其他的变量?

时间:2017-08-01 11:09:47

标签: vb.net

Public Class Form2
    Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged

    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        If TextBox1.Text = 123456 Then
            MsgBox("Activated")
        ElseIf TextBox1.Text = 1234567 Then
            MsgBox("Activated2")

        End If
    End Sub
End Class

我有一个输入框,有2个组合可以为你提供一个msgbox,但是如果输入是其他内容,如何让它读取?

2 个答案:

答案 0 :(得分:2)

首先,将Option Strict On放在代码文件的顶部。这将告诉您不应该检查字符串与整数的相等性。

enter image description here

您可以将整数更改为字符串,或尝试将字符串解析为整数。只比较两个字符串会更安全(不太容易出现异常)。

If TextBox1.Text = "123456" Then
    MsgBox("Activated")
ElseIf TextBox1.Text = "1234567" Then
    MsgBox("Activated2")

现在提出你的问题。我建议使用Select / Case来提高可读性和灵活性。在处理两个以上的情况时,我更喜欢使用它。

Select Case TextBox1.Text
    Case "123456"
        MsgBox("Activated")
    Case "1234567"
        MsgBox("Activated2")
    Case Else
        MsgBox("Else")
End Select

一个优点是你只需要评估TextBox1.Text一次,这对于一个字符串属性来说似乎并不重要,但如果它是一个函数调用或某些属性在幕后发生,你就不会一定要调用两次。在If / Else的情况下,您需要一个临时变量,在Select / Case中您不需要它(不是说它不会在幕后创建一个)。

另一个好处是>= AND <=的简写:您可以检查一系列值。

Case "1234567" To "12345678"

将按字母顺序覆盖这两个字符串之间的所有情况。

最后,还有Or的简写

Case "1234567", "2222222"

将涵盖单一案例中的任何一种情况。

答案 1 :(得分:1)

If TextBox1.Text = 123456 Then
    MsgBox("Activated")
ElseIf TextBox1.Text = 1234567 Then
    MsgBox("Activated2")
Else
    MsgBox(TextBox1.Text)
End If