Gewusst wie: Initialisieren von Arrayvariablen in Visual Basic

Beim Erstellen eines Arrays können Sie dieses mit einem Arrayliteral mit Anfangswerten auffüllen. Sie können das Arrayliteral als Teil der New-Klausel einschließen und den Typ explizit angeben. Wenn Sie keinen Typ für die Arrayelemente angeben, wird der Typ von den Werten im Arrayliteral abgeleitet. Weitere Informationen zum Ableiten des Typs finden Sie unter "Auffüllen eines Arrays mit Anfangswerten" in Arrays in Visual Basic.

So initialisieren Sie eine Arrayvariable mit einem Arrayliteral

  • Geben Sie die Elementwerte in der New-Klausel oder beim Zuweisen des Arraywerts in geschweiften Klammern ({}) an. Im folgenden Beispiel werden mehrere Möglichkeiten veranschaulicht, wie Variablen so deklariert, erstellt und initialisiert werden können, dass sie ein Array mit Elementen vom Typ Char enthalten.

    ' The following three lines of code create the same array.
    Dim chars1() As Char = New Char(2) {"%"c, "&"c, "@"c}
    Dim chars2 = {"%"c, "&"c, "@"c}
    Dim chars3() As Char = {"%"c, "&"c, "@"c}
    

    Nach der Ausführung dieser Anweisungen hat das erstellte Array die Länge 3, wobei die Elemente von Index 0 bis Index 2 die Anfangswerte enthalten. Wenn Sie sowohl die Obergrenze als auch die Werte angeben, müssen Sie für jedes Element von Index 0 bis zur Obergrenze einen Wert einfügen.

    Beachten Sie, dass Sie keine Indexobergrenze angeben müssen, wenn Elementwerte in einem Arrayliteral bereitgestellt werden. Wenn keine Obergrenze angegeben wird, wird die Größe des Arrays anhand der Anzahl der Werte im Arrayliteral abgeleitet.

So initialisieren Sie eine mehrdimensionale Arrayvariable mit Arrayliteralen

  • Schachteln Sie Werte in geschweiften Klammern ({}) in geschweiften Klammern. Stellen Sie sicher, dass alle geschachtelten Arrayliterale als Arrays des gleichen Typs und mit derselben Länge abgeleitet werden. Im folgenden Codebeispiel werden mehrere Beispiele für die Initialisierung mehrdimensionaler Arrays veranschaulicht.

    Dim ticTacToe = {{0, 0, 0}, {0, 0, 0}, {0, 0, 0}}
    Dim customerData = {{"City Power & Light", "http://www.cpandl.com/"},
                        {"Wide World Importers", "http://wideworldimporters.com"},
                        {"Lucerne Publishing", "http://www.lucernepublishing.com"}}
    
    ' You can nest array literals to create arrays that have more than two 
    ' dimensions.
    Dim twoSidedCube = {{{1, 2}, {3, 4}}, {{5, 6}, {7, 8}}}
    
  • Sie können die Arraygrenzen explizit angeben oder diese Angabe auslassen, sodass der Compiler die Arraygrenzen von den Werten im Arrayliteral ableitet. Wenn Sie sowohl die Obergrenzen als auch die Werte vorgeben, müssen Sie in jeder Dimension für jedes Element von Index 0 bis zur Obergrenze einen Wert angeben. Im folgenden Beispiel werden mehrere Möglichkeiten veranschaulicht, wie Variablen so deklariert, erstellt und initialisiert werden können, dass sie ein zweidimensionales Array mit Elementen vom Typ Short enthalten.

    ' The following three lines of code create the same array.
    Dim startingScores1(,) As Short = New Short(1, 2) {{10, 10, 10}, {10, 10, 10}}
    Dim startingScores2 = {{10S, 10S, 10S}, {10S, 10S, 10S}}
    Dim startingScores3(,) As Short = {{10, 10, 10}, {10, 10, 10}}
    

    Nach der Ausführung dieser Anweisung enthält das erstellte Array sechs initialisierte Elemente mit den Indizes (0,0), (0,1), (0,2), (1,0), (1,1) und (1,2). Jede Arrayposition enthält den Wert 10.

So initialisieren Sie eine verzweigte Arrayvariable mit Arrayliteralen

  • Schachteln Sie Objektwerte in geschweiften Klammern ({}). Sie können zwar auch Arrayliterale schachteln, die Arrays von verschiedener Länge angeben, stellen Sie jedoch bei einem verzweigten Array sicher, dass die geschachtelten Arrayliterale in runden Klammern (()) eingeschlossen sind. Durch die Klammern wird die Auswertung der geschachtelten Arrayliterale erzwungen, und die erhaltenen Arrays werden als Anfangswerte des verzweigten Arrays verwendet. Im folgenden Codebeispiel werden zwei Beispiele für die Initialisierung verzweigter Arrays veranschaulicht.

    ' Create a jagged array of arrays that have different lengths.
    Dim diagonal = {({0, 0, 0}), ({0, 0}), ({0})}
    
    ' Create a jagged array of Byte arrays.
    Dim images = {New Byte() {}, New Byte() {}, New Byte() {}}
    

Siehe auch

Aufgaben

Problembehandlung bei Arrays (Visual Basic)

Konzepte

Arrays in Visual Basic