专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > DotNet Exception

未处理的异常:System.InvalidCastException 从字符串’'到类型’Integer'的转换无效。

发布时间:2011-06-26 20:28:42 文章来源:www.iduyao.cn 采编人员:星星草

 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类型而变得很好对其判断和处理!     

友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: