c# - the - Error: El índice estaba fuera de los límites de la matriz.
index was outside the bounds of the array sql server database diagram (3)
// Si ingreso 9 debería ir a 8?
Todavía tienes que trabajar con los elementos de la matriz. Contará 8 elementos cuando realice un bucle a través de la matriz, pero todavía van a ser array (0) - array (7).
Esta pregunta ya tiene una respuesta aquí:
Soy consciente de lo que indica el problema, pero estoy confundido con la forma en que mi programa genera un valor que está fuera de la matriz.
Tengo una serie de entradas que es de 0 a 8, lo que significa que puede contener 9 pulgadas, ¿correcto? Tengo un int que se comprueba para asegurarse de que el valor de entrada de los usuarios sea 1-9. Quito uno del entero (como asi)
if (posStatus[intUsersInput-1] == 0) //if pos is empty
{
posStatus[intUsersInput-1] += 1;
}//set it to 1
Entonces yo ingrese 9 y me sale el error. Debería tener acceso al último int en la matriz, así que no veo por qué recibo un error. Código relevante:
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
}
Error:
"Index was outside the bounds of the array." "Index was outside the bounds of the array."
Has declarado una matriz que puede almacenar 8 elementos, no 9.
this.posStatus = new int[8];
Significa que postStatus contendrá 8 elementos del índice 0 al 7.
public int[] posStatus;
public UsersInput()
{
//It means postStatus will contain 9 elements from index 0 to 8.
this.posStatus = new int[9];
}
int intUsersInput = 0;
if (posStatus[intUsersInput-1] == 0) //if i input 9, it should go to 8?
{
posStatus[intUsersInput-1] += 1; //set it to 1
}