最直接的判断和转换

前面已经讲到,使用转换函数转换数据类型,在转换失败的情况下,会出现错误提示。
使用TryParse方法,可以避免错误提示,但是代码略显繁琐。

最常见的转换应该是将字符转换为数字,对于这种转换,有更直接的方法。
Visual Basic提供了一个Val函数,用于将字符转换为数值,即使转换失败,也不会报错,而是返回0。

例如:

Dim s1 As String = "abc"
Dim
s2 As String = "123.12"
Output.Show(Val(s1) +
100) '等于100
Output.Show(Val(s2) +
100)
'等于223.12

虽然变量s1是无法转换为数值的,但是在命令窗口执行上面的代码,却不会有任何错误提示,因为Val函数将s1被转换为0了。

此外Visual Basic还提供了一个IsNumeric函数,用于判断某个给定的字符串是否能够转换为数值,毕竟有时 会希望在转换前能够判断一下的。

例如:

假定某个数组中,一些元素是数字,一些元素是字符,我们需要统计有多少个元素是数字,以及这些数字元素的和:

Dim s(2) As String
Dim
v As Double
Dim
n As Integer
s(
0)= "36.2"
s(
1) = "fox"
s(
2) = "16.4"
For
i As Integer = 0 To 2
    If IsNumeric(s(i)) Then
        v = v + Val(s(i))
        n = n +
1
   
End If
Next

Output.Show(
"数值个数为:" & n) '2
Output.Show(
"数值的和为:" & v)
'52.6

对应的还有一个IsDate函数,用于判断给定的字符串是否可以转换为日期时间,例如:

Dim sr As String = "2022-05-01"
If
IsDate(sr) Then
    Dim dt As Date = CDate(sr)
    Output.Show(dt)

Else

    MessageBox.Show(
"
非法日期格式", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error)
End
If


本页地址:http://www.foxtable.com/webhelp/topics/1514.htm