Erreur: l'index était en dehors des limites du tableau.

Je suis conscient de ce que le problème est d'énoncer, mais je ne sais pas comment mon programme est sortie une valeur qui est en dehors de la matrice..

J'ai un tableau d'entiers qui est de 0 à 8, ce qui signifie qu'il peut contenir 9 ints, correct?
J'ai un int qui est vérifié pour s'assurer que les utilisateurs de la valeur d'entrée est de 1 à 9. J'ai supprimer l'un de l'entier (comme)

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

puis-je entrée 9 moi-même et je reçois le message d'erreur. Il doit accéder à la dernière int dans le tableau, donc je ne vois pas pourquoi j'obtiens une erreur.
Code:

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    
} 

Erreur:

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

source d'informationauteur Zain