所以我不断收到错误
抛出异常:' System.IndexOutOfRangeException'
对于我的阵列计数器。我还在学习Visual Basic,但我有其他语言的编程知识,所以我不确定我是不是在这里没有正确地翻译语法,或者它是否只是一个逻辑错误我没有看到。
arrayNumsMultiply()
数组是一个用6个值声明的整数数组。我的计数器变量也在程序中声明为Integer。
以下代码用于计算6个数字,检查它们中是否有两个整数(例如:47,所以4和7),然后将它们一起添加。从那里,它将它存储回数组并擦除以前的值。我在代码中有一个System.Console.WriteLine
来查看If语句是否正在启动而且它不是,但是计数器控制台日志是。关于我可能做错的任何想法? (引发错误的特定行是If arrayNumsMultiply(counter).ToString.Length = 2 Then
)
For counter = 0 To 5
If arrayNumsMultiply(counter).ToString.Length = 2 Then
Dim numOne As String = arrayNumsMultiply(counter).ToString().Substring(1, 1)
Dim numTwo As String = arrayNumsMultiply(counter).ToString().Substring(2, 1)
Convert.ToInt32(numOne)
Convert.ToInt32(numTwo)
Dim totalNum As Integer
totalNum = numOne + numTwo
arrayNumsMultiply(counter) = totalNum
System.Console.WriteLine("If statement for adding in an integer working")
End If
System.Console.WriteLine("Counter working")
Next counter
答案 0 :(得分:0)
如果你的字符串长度为2,则第一个字符位于第0位,第二个字符位于第1位。与.net中的大多数内容一样,这是基于零的。所以这些行的正确代码是......
Dim numOne As String = arrayNumsMultiply(counter).ToString().Substring(0, 1)
Dim numTwo As String = arrayNumsMultiply(counter).ToString().Substring(1, 1)