未处理的异常:System.InvalidCastException 从字符串“”到类型“Integer”的转换

arigatohe 2009-10-18 10:55:26
小弟初学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)

哪位高手能解释一下这个异常是什么意思么?十分感谢
...全文
1006 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
guangguang0512 2009-12-04
  • 打赏
  • 举报
回复
路过、看看
arigatohe 2009-10-23
  • 打赏
  • 举报
回复
不好意思,问完问题一直,没过来,大家的解释我明白了,谢谢
sytsyt0329 2009-10-19
  • 打赏
  • 举报
回复
最简单的方法:
将Dim InputNum As Integer = 0 这句改为:Dim InputNum As String = "" 就行了,不必上面那么繁琐。
这样的话,你的InputBox输入框中无论输入什么字符,程序不仅不会报错,还会因为返回值InputNum为String类型而变得很好对其判断和处理!
jane_zhao 2009-10-19
  • 打赏
  • 举报
回复
CInt(InputBox("请输入一个整数,要结束请输入-1"))
错误原因是CInt方法不能将“”变成integer而报错。
解决方法有多种,楼上的已经说了好几种。
wuyq11 2009-10-18
  • 打赏
  • 举报
回复
CInt(InputBox("请输入一个整数,要结束请输入-1", "", 1))
古今多少事 2009-10-18
  • 打赏
  • 举报
回复
InputBox初始值为“”,不能转换成整形。
改成这样试试:
InputNum = CInt(InputBox("请输入一个整数,要结束请输入-1","","0"))
PandaIT 2009-10-18
  • 打赏
  • 举报
回复
Val
贫下码农 2009-10-18
  • 打赏
  • 举报
回复
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

16,722

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧