抛出异常:' System.IndexOutOfRangeException'在VB.net中

时间:2018-04-19 23:54:33

标签: vb.net

所以我不断收到错误

  

抛出异常:' 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

1 个答案:

答案 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)