c# – 错误:索引超出数组的边界.

前端之家收集整理的这篇文章主要介绍了c# – 错误:索引超出数组的边界.前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道这个问题是在说什么,但是我对我的程序输出一个不在数组中的值感到困惑.

我有一个int数组是0 – 8,这意味着它可以容纳9个int,正确吗?
我有一个int被检查,以确保用户的输入值为1-9.我从整数中删除一个(像这样)

  1. if (posStatus[intUsersInput-1] == 0) //if pos is empty
  2. {
  3. posStatus[intUsersInput-1] += 1;
  4. }//set it to 1

然后我自己输入9,我得到错误.它应该访问数组中的最后一个int,所以我不明白为什么我得到一个错误.
相关代码

  1. public int[] posStatus;
  2.  
  3. public UsersInput()
  4. {
  5. this.posStatus = new int[8];
  6. }
  7.  
  8. int intUsersInput = 0; //this gets try parsed + validated that it's 1-9
  9.  
  10. if (posStatus[intUsersInput-1] == 0) //if i input 9 it should go to 8?
  11. {
  12. posStatus[intUsersInput-1] += 1; //set it to 1
  13. }

错误

  1. "Index was outside the bounds of the array." "Index was outside the bounds of the array."

解决方法

你已经声明一个数组,可以存储8个元素不是9.
  1. this.posStatus = new int[8];

这意味着postStatus将包含从索引0到7的8个元素.

猜你在找的C#相关文章