Partager via


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

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

Autres ressources

Tableaux dans Visual Basic