在VB中协助用户输入之前检查用户输入

时间:2016-01-26 21:44:08

标签: vb.net variable-assignment

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

Dim Number As Integer
Number = Console.ReadLine()

如果有人要输入不是数字的内容,则会抛出无效的案例异常。这当然可以通过try / catch解决,但我被告知使用它们是不好的做法。此外,如果我使用IsNumeric(),我仍然需要存储输入,冒着另一个强制转换错误,甚至在检查它是否为数字之前。最好的方法是什么?

2 个答案:

答案 0 :(得分:2)

使用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将返回True,值将出现在out参数(Number)中。如果转换不成功,TryParse将返回false,而Number(out参数)将为0.

以下是Int32.TryParse的更多信息;其他几种数据类型也有TryParse方法。

答案 1 :(得分:0)

Console.ReadLine方法返回一个String,因此使用Integer变量不会很好。 提示是始终检查文档或intellisense,以获取返回值的类型。

以下内容将读取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