如何在Vb.Net中比较Val函数和“”

时间:2013-09-07 12:34:52

标签: vb.net

我正在为用户输入一个文本框,然后按如下方式验证它:

Val(txt_score1.text)

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

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

我收到转换错误。因为“”是String而Val是返回Integer。

如何克服这个?

1 个答案:

答案 0 :(得分: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