在将输入分配给变量之前,如何检查输入是否有效。例如,如果我有这个:
Dim Number As Integer
Number = Console.ReadLine()
如果有人要输入不是数字的内容,则会抛出无效的案例异常。这当然可以通过try / catch解决,但我被告知使用它们是不好的做法。此外,如果我使用IsNumeric(),我仍然需要存储输入,冒着另一个强制转换错误,甚至在检查它是否为数字之前。最好的方法是什么?
答案 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