VB.NET,遇到以下问题,求教:
代码如下
Module HelloVB
Sub Main()
While True
Dim InputNum As Integer = 0
InputNum = CInt(InputBox("请输入一个整数,要结束请输入-1"))
If InputNum = -1 Then
Exit While
End If
MsgBox("你输入的结果是: " & InputNum)
End While
End Sub
End Module
异常如下:
未处理的异常: System.InvalidCastException: 从字符串“”到类型“Integer”的转换
无效。 ---> System.FormatException: 输入字符串的格式不正确。
在 Microsoft.VisualBasic.CompilerServices.Conversions.ParseDouble(String Valu
e, NumberFormatInfo NumberFormat)
在 Microsoft.VisualBasic.CompilerServices.Conversions.ToInteger(String Value)
--- 内部异常堆栈跟踪的结尾 ---
在 Microsoft.VisualBasic.CompilerServices.Conversions.ToInteger(String Value)
哪位能解释一下这个异常是什么意思么?
------解决方法--------------------------------------------------------
InputBox初始值为“”,不能转换成整形。
改成这样试试:
InputNum = CInt(InputBox("请输入一个整数,要结束请输入-1","","0"))
------解决方法--------------------------------------------------------
CInt(InputBox("请输入一个整数,要结束请输入-1", "", 1))
------解决方法--------------------------------------------------------
Sub Main()
While True
Dim InputNum As Integer = 0
Dim InputStr As String = InputBox("请输入一个整数,要结束请输入-1")
If IsNumeric(InputStr) Then
InputNum = CType(InputStr, Integer)
If InputNum = -1 Then
Exit While
End If
Else
InputNum = 0
End If
MsgBox("你输入的结果是: " & InputNum)
End While
End Sub
------解决方法--------------------------------------------------------
最简单的方法:
将Dim InputNum As Integer = 0 这句改为:Dim InputNum As String = "" 就行了,不必上面那么繁琐。
这样的话,你的InputBox输入框中无论输入什么字符,程序不仅不会报错,还会因为返回值InputNum为String类型而变得很好对其判断和处理!