我正在为用户输入一个文本框,然后按如下方式验证它:
Val(txt_score1.text)
然后我必须将它与该文本框中的空白条目进行比较。像这样:
If (Val(txt_score1.Text) = "") Then....
我收到转换错误。因为“”是String而Val是返回Integer。
如何克服这个?
答案 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