Problembehandlung bei Arrays
Aktualisiert: November 2007
Auf dieser Seite werden einige allgemeine Probleme aufgeführt, die beim Arbeiten mit Array auftreten können.
Kompilierungsfehler beim Deklarieren und Initialisieren eines Arrays
Kompilierungsfehler können aufgrund eines unzureichenden Verständnisses der Regeln zum Deklarieren, Erstellen und Initialisieren von Arrays auftreten. Die häufigsten Ursachen von Fehlern sind folgende:
Angeben einer New (Visual Basic)-Klausel nach der Angabe der Dimensionslängen in der Arrayvariablendeklaration. In den folgenden Codezeilen werden ungültige Deklarationen dieses Typs dargestellt.
Dim INVALIDsingleDimByteArray(2) As Byte = New Byte()
Dim INVALIDtwoDimShortArray(1, 1) As Short = New Short(,)
Dim INVALIDjaggedByteArray(1)() As Byte = New Byte()()
Angeben von Dimensionslängen für mehrere Arrays der obersten Ebene eines verzweigten Arrays. In der folgenden Codezeile wird eine ungültige Deklaration dieses Typs dargestellt.
Dim INVALIDjaggedByteArray(1)(1) As Byte
Auslassen des New-Schlüsselworts beim Angeben der Elementwerte. In der folgenden Codezeile wird eine ungültige Deklaration dieses Typs dargestellt.
Dim INVALIDoneDimShortArray() As Short = Short() {0, 1, 2, 3}
Angeben einer New-Klausel ohne geschweifte Klammern ({}). In den folgenden Codezeilen werden ungültige Deklarationen dieses Typs dargestellt.
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)
Zugreifen auf ein Array außerhalb der zulässigen Grenzen
Beim Initialisieren eines Arrays wird jeder Dimension eine Obergrenze und eine Untergrenze zugewiesen. Bei jedem Zugriff auf ein Element des Arrays muss für jede Dimension ein gültiger Index, auch als Feldindex bezeichnet, angegeben werden. Wenn ein Index niedriger als die Untergrenze oder höher als die Obergrenze ist, wird eineIndexOutOfRangeException-Ausnahme ausgelöst. Der Compiler kann einen solchen Fehler nicht erkennen, daher tritt zur Laufzeit ein Fehler auf.
Bestimmen von Grenzen
Wenn eine andere Komponente ein Array, z. B. als ein Prozedurargument, an Code übergibt, kennen Sie weder die Größe dieses Arrays noch die Länge seiner Dimensionen. Bestimmen Sie immer für jede Dimension eines Arrays die Obergrenze, bevor Sie auf Elemente zuzugreifen versuchen. Wenn das Array nicht mit der New-Klausel von Visual Basic erstellt wurde, weist die Untergrenze möglicherweise einen anderen Wert als 0 (null) auf, und zur Sicherheit empfiehlt es sich, die Untergrenze ebenfalls zu bestimmen.
Angeben der Dimension
Wenn Sie die Grenzen eines mehrdimensionalen Arrays bestimmen, achten Sie darauf, wie Sie die Dimension angeben. Die dimension-Parameter der GetLowerBound-Methode und der GetUpperBound-Methode sind nullbasiert, während die Rank-Parameter der LBound-Funktion (Visual Basic) und der UBound-Funktion (Visual Basic) von Visual Basic 1-basiert sind.
Siehe auch
Aufgaben
Gewusst wie: Deklarieren einer Arrayvariablen
Gewusst wie: Erstellen eines Arrays
Gewusst wie: Erstellen eines Arrays mit mehr als einer Dimension
Gewusst wie: Erstellen eines Arrays von Arrays
Gewusst wie: Erstellen eines Arrays mit unterschiedlichen Elementtypen
Gewusst wie: Erstellen eines Arrays ohne Elemente
Gewusst wie: Initialisieren einer Arrayvariablen
Gewusst wie: Initialisieren eines mehrdimensionalen Arrays
Gewusst wie: Initialisieren eines verzweigten Arrays