我有以下代码
Dim sSerialNumber = "9082285F"
Dim iSerial As Integer = ("&H" & sSerialNumber)
Dim iSerial2 As Integer = Convert.ToInt32(sSerialNumber, 16)
但VB.NET不喜欢这个。 IDE在运行时告诉我在行
中检测到堆栈溢出Dim iSerial As Integer = ("&H" & sSerialNumber)
有人知道为什么并且知道如何正确地做到这一点吗?
谢谢!
答案 0 :(得分:5)
如果您阅读了错误,则表示您有System.OverflowException异常。尝试将您的类型更改为Long而不是Integer。
要演示的小型控制台程序。
Sub Main()
Dim sSerialNumber = "9082285F"
Dim iSerial As Long = ("&H" & sSerialNumber)
Dim iSerial2 As Long = Convert.ToInt64(sSerialNumber, 16)
Console.WriteLine(sSerialNumber)
Console.WriteLine(iSerial)
Console.WriteLine(Hex(iSerial))
Console.WriteLine(iSerial2)
Console.WriteLine(Hex(iSerial2))
Console.ReadLine()
End Sub