微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我知道这个问题是在说什么,但是我对我的程序输出一个不在数组中的值感到困惑.

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

if (posstatus[intUsersInput-1] == 0) //if pos is empty
{
    posstatus[intUsersInput-1] += 1; 
}//set it to 1

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

public int[] posstatus;       

public Usersinput()    
{    
    this.posstatus = new int[8];    
}

int intUsersInput = 0; //this gets try parsed + validated that it's 1-9    

if (posstatus[intUsersInput-1] == 0) //if i input 9 it should go to 8?    
{    
    posstatus[intUsersInput-1] += 1; //set it to 1    
}

错误

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

解决方法

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

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

原文地址:https://www.jb51.cc/csharp/94660.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐