private void Writein_Click(object sender, EventArgs e) { string txt = ""; if (i< Obedient.GetLength(0)) { Obedient[i, 0] = Convert.ToUInt16(textBox5.Text); Obedient[i, 1] = Convert.ToUInt16(textBox6.Text); Obedient[i, 2] = Convert.ToUInt16(textBox9.Text); Obedient[i, 3] = Convert.ToUInt16(textBox10.Text); Obedient[i, 4] = Convert.ToUInt16(textBox11.Text); Obedient[i, 5] = Convert.ToUInt16(textBox12.Text); Obedient[i, 6] = Convert.ToUInt16(textBox2.Text); txt = (i+1) + "、" + "\t" + Convert.ToString(Obedient[i, 0]).PadLeft(4, '0') + "\t" + Convert.ToString(Obedient[i, 1]).PadLeft(4, '0') + "\t" + Convert.ToString(Obedient[i, 2]).PadLeft(4, '0') + "\t" + Convert.ToString(Obedient[i, 3]).PadLeft(4, '0') + "\t" + Convert.ToString(Obedient[i, 4]).PadLeft(4, '0') + "\t" + Convert.ToString(Obedient[i, 5]).PadLeft(4, '0') + "\t" + Convert.ToString(Obedient[i, 6]).PadLeft(4, '0') +"\r\n"; textBox7.Text += txt; this.textBox7.SelectionStart = this.textBox7.Text.Length; this.textBox7.ScrollToCaret(); i++; } else if(i == Obedient.GetLength(0)) { MessageBox.Show("已到达伺服的最大容量,请停止!"); } } 这行代码 哪里错了 为什么提示System.IndexOutOfRangeException: 索引超出了数组界限。
时间: 2024-03-21 13:43:35 浏览: 39
这段代码中的错误是 `Obedient` 数组的维度不够,导致在使用 `Obedient[i, j]` 的时候超出了数组的界限。这里可能是在数组定义时没有给出足够的维度或者在使用 `GetLength` 方法时没有正确获取数组的维度。
请检查一下你的代码,确保在初始化 `Obedient` 数组时给出了正确的维度,例如:
```
const int MAX_ROWS = 100;
const int MAX_COLS = 7;
UInt16[,] Obedient = new UInt16[MAX_ROWS, MAX_COLS];
```
这里将 `Obedient` 数组定义为了一个 100 行 7 列的二维数组,你可以根据实际情况调整数组的大小。同时,你还需要确保在使用 `GetLength` 方法时正确获取数组的维度,例如:
```
if (i < Obedient.GetLength(0))
{
// ...
}
```
这里使用了 `Obedient.GetLength(0)` 来获取数组的行数,确保不会超出数组的界限。
阅读全文