2011-11-26 127 views
-2

OK我试图去通过代码自己一堆次,但在人们的首选的Visual Studio总是说这是错的..索引越界 - C#

指数成分股必然会错误

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      //declare Arrays for buttons and 
      //LEDs 

      int[] buttonArray = new int[4]; // Left to right .-.. ------ 
      //left, top, bottom, right 
      int[,] ledArray = new int[10, 10]; 

      //declare variables 
      int strandSnake = 0; 
      int requestR = 0; 

      int countDeclareButtonArray = 0; 
      int countWriteButtonArray = 0; 



      //code 
      if (strandSnake != 1) 
      { 

      } 


      //Declaring the four buttons 
      for (int ip = 0; ip < 4; ip++) 
      { 
       buttonArray[countDeclareButtonArray] = countDeclareButtonArray; 
       countDeclareButtonArray++; 
      } 

      // writing the four buttons to the screen. 

      foreach (int ip in buttonArray) 
      { 

       requestR = buttonArray[countWriteButtonArray]; 
       countWriteButtonArray++; 
      } 

      Console.ReadLine(); 
     } 
    } 
} 
+3

请格式化您的代码并提供更多信息。哪一行产生错误?你能把整个信息粘贴在这里吗? – gustavotkg

+1

错误发生在哪里? – BWC

+0

“错”是什么意思? – JAM

回答

0

的你应该知道在C#中数组的索引范围从0 .. array.Length - 1

所以,如果你有

int[] a = new int[4]; 

您可以访问a [0]。一[1],A [2],[3]

但是,当你访问一个[4],你会得到指数成分股必然会错误的。

调试和搜索哪里错误从

0

去看看代码片断,countWriteButtonArray变量的值是4,所以你必须分配给0countWriteButtonArray

countWriteButtonArray=0; 
foreach (int ip in buttonArray) 
{ 
    requestR = buttonArray[countWriteButtonArray]; 
    countWriteButtonArray++; 
} 

如果你想从buttonArray数组中的元素,那么你可以使用:

foreach (int ip in buttonArray) 
    { 
     // 
    } 

用于循环使用索引来遍历数组。

for(countWriteButtonArray=0;countWriteButtonArray<=buttonArray.GetUpperBound(0);countWriteButtonArray++) 
    { 
     requestR = buttonArray[countWriteButtonArray]; 
    }