2010-02-16 3 views
2

Venant d'un arrière-plan C#, je ne sais pas pourquoi le declarationr suivant renvoie un tableau avec length = 2, quelqu'un peut m'éclairer s'il vous plaît?VB.NET Array Initialisation me confond

Dim lTestArray(1) As String 

Console.WriteLine(lTestArray.Length) (writes 2)

+0

@Konrad: Je me suis corrigé. –

Répondre

3

déclarations de tableaux VB.NET fournissent la limites supérieures (à savoir l'indice maximum) de la matrice, pas la longueur. Puisque les tableaux sont basés sur 0, un index maximum de 1 vous donne deux éléments (0 et 1).

+0

... et il est basé sur zéro donc vous avez des éléments aux indices 0 et 1 - donc longueur = 2. – tvanfosson

+3

Merci beaucoup, ajouté ceci à ma liste de vérification "Pourquoi je n'aime pas VB.NET"! – Dominiek

+0

Une option consiste à éviter complètement les tableaux. http://blogs.msdn.com/ericlippert/archive/2008/09/22/arrays-considered-somewhat-harmful.aspx –

1

Dans VB.NET, vous ne spécifiez pas la longueur du tableau ... vous spécifiez en fait l'index du dernier élément adressable. Étant donné que les baies .NET sont basées sur 0 et que vous avez spécifié 1 comme étant le dernier élément indexable, la longueur est 2.