Dépannage des tableaux (Visual Basic)
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, opérateur (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 des moyens autres qu'une clause New de Visual Basic, la limite inférieure peut avoir une valeur différente de 0 et il est plus sûr de déterminer également 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 des fonctions LBound et UBound de Visual Basic sont de base 1.
Voir aussi
Tâches
Comment : initialiser une variable tableau en Visual Basic