Recommandations de mise à niveau : utiliser des tableaux bornés à zéro
Mise à jour : novembre 2007
Dans Visual Basic 6.0, vous pouvez définir des tableaux avec des limites supérieure et inférieure correspondant à n'importe quel nombre entier. Vous pouvez également utiliser ReDim pour réassigner un variant sous forme de tableau. Pour une question d'interopérabilité avec les autres langages, les tableaux dans Visual Basic 2008 doivent avoir une limite inférieure égale à zéro et ReDim ne peut plus être utilisé, à moins que la variable du tableau ait précédemment été déclarée à l'aide du mot clé Dim. Cette contrainte, si elle restreint la définition des tableaux, vous permet aussi de passer des tableaux entre Visual Basic 2008 et tout autre langage du .NET Framework. L'exemple suivant illustre cette contrainte :
'BAD: LBound must be 0
Dim a(1 To 10) As Integer
'BAD: Can't use ReDim without Dim
ReDim v(10)
'OK: Creates an array of 11 integers
Dim b(10) As Integer
'OK: Can ReDim previously Dimed variable
ReDim b(5) As Integer
Conséquence de ce changement, l'instruction Option Base est supprimée du langage.
Lorsque votre projet est mis à niveau vers Visual Basic 2008, toutes les instructions Option Base sont supprimées de votre code. Si le tableau est de base zéro, il reste inchangé. Toutefois, si un tableau n'est pas limité à zéro, sa limite inférieure est supprimée et un avertissement est inséré dans le code, comme le montre l'exemple suivant :
Dim a(1 To 10) As Integer
Est changé en :
' UPGRADE_WARNING: Lower bound of an array was changed from 1 to 0.
Dim a(10) As Integer
Dans de nombreux cas, le code mis à niveau fonctionnera comme avant. Toutefois, si la logique de votre application se base sur une limite inférieure de 1, vous devez procéder à quelques modifications. Les instructions Dim, ReDim et LBound sont accompagnées d'avertissements afin de vous permettre de vérifier les modifications.
C'est pourquoi nous vous conseillons d'employer des tableaux de base zéro dans votre code Visual Basic 6.0, d'éviter de recourir à ReDim comme déclaration de tableau et d'éviter d'utiliser Option Base 1.