0

我正在让用户输入一个文本框,然后按如下方式对其进行验证:

Val(txt_score1.text)

然后我必须将它与该文本框中的空白条目进行比较。像这样:

If (Val(txt_score1.Text) = "") Then....

我收到转换错误。因为“”是字符串,而 Val 是返回整数。

如何克服这个?

4

1 回答 1

4

您可以使用Integer.TryParse来确定该值是否为正确的整数:

    Dim x As Integer
    If Integer.TryParse(TextBox1.Text, x) Then
        MessageBox.Show(x)
    Else
        MessageBox.Show("'" + TextBox1.Text + "' is not a valid number")
    End If

如果您只需要检查一个空白字符串,您可以在文本本身上使用String.IsNullOrEmpty :

    If String.IsNullOrEmpty(TextBox1.Text) Then
        MessageBox.Show("String is empty")
    End If

Val是 VB6 时代遗留下来的遗留函数,如果你不知道它会有一些奇怪的行为。由于这个原因,我避免它。例如,采用以下案例及其生成的输出:

    MessageBox.Show(Val(""))        '0
    MessageBox.Show(Val("5"))       '5
    MessageBox.Show(Val("5e3"))     '5000
    MessageBox.Show(Val("5xyz"))    '5
于 2013-09-07T12:59:35.083 回答