在 VB 中分配之前检查用户输入

Checking user input before assinging it in VB

在将输入分配给变量之前,您将如何检查输入是否有效。例如,如果我有这个:

Dim Number As Integer
Number = Console.ReadLine()

如果有人输入的不是数字,就会抛出大小写无效异常。这当然可以用 try/catch 来解决,但有人告诉我使用它们是不好的做法。此外,如果我要使用 IsNumeric(),我仍然需要存储输入,甚至在设法检查它是否为数字之前冒着另一个转换错误的风险。解决此问题的最佳方法是什么?

使用TryParse。要使用您的示例:

Dim Number As Integer

If Int32.TryParse(Console.ReadLine(), Number) Then
    ' Logic for the successful conversion
Else
    ' Logic for the unsuccessful conversion
End If

如果转换成功,TryParse将为returnTrue,值将在输出参数(Number)中。如果转换不成功,TryParse 将为 return false,Number(out 参数)将为 0。

这里有更多关于 Int32.TryParse 的信息;其他几种数据类型也有一个 TryParse 方法。

Console.ReadLine 方法 returns 一个字符串,因此使用整数变量并不好。 提示是始终检查文档或智能感知,以获取返回值的类型。

下面将读取值到一个String变量中,并使用Integer.TryParse方法将其解析为一个Integer。

Dim strNumber As String
Dim iNumber as Integer
strNumber = Console.ReadLine()
If Not Integer.TryParse(strNumber, iNumber) Then
  'Handle error
End If