Dépannage des tableaux
Mise à jour : novembre 2007
Cette page répertorie quelques problèmes courants qui peuvent se produire lors de l'utilisation des tableaux.
Déclaration d'erreurs de compilation et initialisation d'un tableau
Les erreurs de compilation peuvent être dues à une mauvaise compréhension des règles de déclaration, de création et d'initialisation des tableaux. Les causes d'erreurs les plus courantes sont les suivantes :
fournir une clause New (Visual Basic) après avoir spécifié les longueurs de dimension dans la déclaration des variables du tableau. Les lignes de code suivantes affichent des déclarations non valides de ce type ;
Dim INVALIDsingleDimByteArray(2) As Byte = New Byte()
Dim INVALIDtwoDimShortArray(1, 1) As Short = New Short(,)
Dim INVALIDjaggedByteArray(1)() As Byte = New Byte()()
spécifier des longueurs de dimension supérieures au tableau de niveau supérieur d'un tableau en escalier. La ligne de code suivante affiche une déclaration non valide de ce type ;
Dim INVALIDjaggedByteArray(1)(1) As Byte
omettre le mot clé New lors de la spécification des valeurs d'éléments. La ligne de code suivante affiche une déclaration non valide de ce type ;
Dim INVALIDoneDimShortArray() As Short = Short() {0, 1, 2, 3}
fournir une clause New sans accolades ({}). Les lignes de code suivantes affichent des déclarations non valides de ce type.
Dim INVALIDsingleDimByteArray() As Byte = New Byte()
Dim INVALIDsingleDimByteArray() As Byte = New Byte(2)
Dim INVALIDtwoDimShortArray(,) As Short = New Short(,)
Dim INVALIDtwoDimShortArray(,) As Short = New Short(1, 1)
Accès à un tableau hors limites
Le processus d'initialisation d'un tableau assigne une limite supérieure et une limite inférieure à chaque dimension. Chaque accès à un élément du tableau doit spécifier un index ou un indice valide pour chaque dimension. Si un index est en dessous de sa limite inférieure ou au-dessus de sa limite supérieure, une d'exception IndexOutOfRangeException se produit. Le compilateur ne peut pas détecter une telle erreur, donc une erreur se produit au moment de l'exécution.
Détermination des limites
Si un autre composant passe un tableau à votre code, par exemple en tant qu'argument de procédure, vous ne connaissez pas la taille de ce tableau ou les longueurs de ses dimensions. Vous devez toujours déterminer la limite supérieure de chaque dimension d'un tableau avant d'essayer d'accéder aux éléments. Si le tableau a été créé par d'autres moyens qu'une clause NewVisual Basic, la limite inférieure peut avoir une valeur différente de 0, et elle est également la valeur la plus sûre pour déterminer cette limite inférieure.
Spécification de la dimension
Lorsque vous déterminez les limites d'un tableau multidimensionnel, veillez à bien spécifier la dimension. Les paramètres dimension des méthodes GetLowerBound et GetUpperBound sont de base 0, tandis que les paramètres Rank de LBound, fonction (Visual Basic) et UBound, fonction (Visual Basic) de Visual Basic sont de base 1.
Voir aussi
Tâches
Comment : déclarer une variable tableau
Comment : créer un tableau à plusieurs dimensions
Comment : créer un tableau de tableaux
Comment : créer un tableau avec des types d'élément mixtes
Comment : créer un tableau sans éléments
Comment : initialiser une variable tableau
Comment : initialiser un tableau multidimensionnel
Comment : initialiser un tableau en escalier