System.IndexOutOfRangeExecption ERROR - C#
本文关键字:ERROR IndexOutOfRangeExecption System | 更新日期: 2023-09-27 18:25:25
我刚刚尝试用数组和简单的写行运行一些代码,但我得到了"System.IndexOutOfRangeExection"的ERROR和更多的胡言乱语行。
代码(简单):
static void Main(string[] args)
{
// מטרת התכנית היא למצוא את שמו של התלמיד על פי מקום הישיבה שלו, וההפך
// נשתמש במערך בשם Places.
string[,] places = new string [3,3];
places[0, 0] = "Me & Dori";
places[0, 1] = "Me & Dori";
places[0, 2] = "Me & Dori";
places[0, 3] = "Me & Dori";
places[1, 0] = "Me & Dori";
places[1, 1] = "Me & Dori";
places[1, 2] = "Me & Dori";
places[1, 3] = "Me & Dori";
places[2, 0] = "Me & Dori";
places[2, 1] = "Me & Dori";
places[2, 2] = "Me & Dori";
places[2, 3] = "Me & Dori";
places[3, 0] = "Me & Dori";
places[3, 1] = "Me & Dori";
places[3, 2] = "Me & Dori";
places[3, 3] = "Me & Dori";
Console.WriteLine(places[1, 3]);
}
*我对C#不太了解,还在学习。。。所以我想这是我忘了写的东西。
数组的大小是3x3,由于数组是基于c#的,所以数组以2,2结束。
你必须将你的数组设置为4x4才能让你的代码工作:
string[,] places = new string [4,4];
或者您应该删除设置上限的代码。
如果您在C#中声明一个数组,如下所示:
string[,] places = new string [3,3];
这个数组中有9个元素,索引从0,0开始,最后一个是2,2
当你试图在2,3处寻址元素时,它会抛出Exception
places[2, 3] = "Me & Dori";
new String[3,3]
3表示尺寸的数量。数组是基于0的。所以你创造了三个维度。0、1和2。您尝试将值设置为第四个维度。
places[3, 0] = "Me & Dori";
places[3, 1] = "Me & Dori";
places[3, 2] = "Me & Dori";
places[3, 3] = "Me & Dori";
这不起作用,因为没有第四维度。所以删除这些行或使用:
string[,] places = new string [4,4];
数组的最大索引为places[2, 2]
。您需要string[,] places = new string[4,4];
才能使用
places[0, 3] = "Me & Dori";
places[1, 3] = "Me & Dori";
places[2, 3] = "Me & Dori";
places[3, 0] = "Me & Dori";
places[3, 1] = "Me & Dori";
places[3, 2] = "Me & Dori";
places[3, 3] = "Me & Dori";
您正在声明一个3x3数组,但试图将4x4数据分配给它
string[,] places = new string [4,4];