索引越界 - C#
问题描述:
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();
}
}
}
答
的你应该知道在C#中数组的索引范围从0 .. array.Length - 1
所以,如果你有
int[] a = new int[4];
您可以访问a [0]。一[1],A [2],[3],
但是,当你访问一个[4],你会得到指数成分股必然会错误的。
调试和搜索哪里错误从
答
去看看代码片断,countWriteButtonArray
变量的值是4
,所以你必须分配给0
countWriteButtonArray
。
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];
}
请格式化您的代码并提供更多信息。哪一行产生错误?你能把整个信息粘贴在这里吗? – gustavotkg
错误发生在哪里? – BWC
“错”是什么意思? – JAM