Share via


Empfehlung zur Aktualisierung: Verwenden von auf Null basierenden Arrays

Aktualisiert: November 2007

In Visual Basic 6.0 können Sie Arrays mit unteren und oberen Grenzen definieren, die jeden beliebigen ganzzahligen Wert annehmen können. Außerdem kann ReDim verwendet werden, um eine Variante als ein Array neu zuzuweisen. Arrays müssen in Visual Basic 2008 eine untere Grenze von 0 (null) aufweisen, um das Zusammenwirken mit anderen Sprachen zu ermöglichen. ReDim kann nur verwendet werden, wenn die Arrayvariable vorher mit dem Dim-Schlüsselwort deklariert wurde. Obwohl dadurch die Definitionsmöglichkeiten von Arrays eingeschränkt werden, können so Arrays zwischen Visual Basic 2008 und einer beliebigen anderen .NET Framework-Sprache übergeben werden. Im folgenden Beispiel wird die Einschränkung gezeigt:

'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

Ein Nebeneffekt besteht darin, dass die Option Base-Anweisung aus der Sprache entfernt wurde.

Sobald ein Projekt auf Visual Basic 2008 aktualisiert wird, werden alle Option Base-Anweisungen aus dem Code entfernt. Wenn es sich bei dem Array um ein nullgebundenes Array handelt, wird es nicht geändert. Wenn es sich bei dem Array jedoch um ein nicht nullgebundenes Array handelt, wird die untere Grenze entfernt und eine Warnung in den Code eingefügt, wie im folgenden Beispiel gezeigt:

Dim a(1 To 10) As Integer

wird geändert in:

' UPGRADE_WARNING: Lower bound of an array was changed from 1 to 0.
Dim a(10) As Integer

In vielen Fällen arbeitet der aktualisierte Code wie zuvor. Wenn die Anwendungslogik jedoch davon abhängt, dass die Untergrenze 1 beträgt, müssen Sie einige Änderungen vornehmen. Dim-, ReDim- und LBound-Anweisungen werden mit Warnungen markiert, um Sie bei der Überprüfung der Änderungen zu unterstützen.

Daher sollten im Visual Basic 6.0-Code nullgebundene Arrays verwendet werden und die Verwendung von ReDim als Arraydeklaration sowie von Option Base 1 vermieden werden.

Siehe auch

Weitere Ressourcen

Sprachempfehlungen zum Aktualisieren