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

Weitere Ressourcen

Arrays in Visual Basic