Delen via


Handleiding: Een arrayvariabele initialiseren in Visual Basic

U initialiseert een matrixvariabele door een letterlijke matrix op te nemen in een New component en de initiële waarden van de matrix op te geven. U kunt het type opgeven of toestaan dat het wordt afgeleid van de waarden in de letterlijke matrix. Zie 'Een matrix vullen met initiële waarden' in matrices voor meer informatie over hoe het type wordt afgeleid.

Een matrixvariabele initialiseren met behulp van een letterlijke matrix

  • Geef in de New voorwaarde, of wanneer u de matrixwaarde toewijst, de elementwaarden binnen accolades ({}). In het volgende voorbeeld ziet u verschillende manieren om een variabele te declareren, te maken en te initialiseren die een matrix bevat die elementen van het type Charbevat.

    ' The following five lines of code create the same array.
    ' Preferred syntaxes are on the lines with chars1 and chars2.
    Dim chars1 = {"%"c, "&"c, "@"c}
    Dim chars2 As Char() = {"%"c, "&"c, "@"c}
    
    Dim chars3() As Char = {"%"c, "&"c, "@"c}
    Dim chars4 As Char() = New Char(2) {"%"c, "&"c, "@"c}
    Dim chars5() As Char = New Char(2) {"%"c, "&"c, "@"c}
    

    Nadat elke instructie is uitgevoerd, heeft de gemaakte matrix een lengte van 3, met elementen bij index 0 tot en met index 2 die de initiële waarden bevatten. Als u zowel de bovengrens als de waarden opgeeft, moet u een waarde voor elk element van index 0 tot en met de bovengrens opnemen.

    U hoeft de bovengrens van de index niet op te geven als u elementwaarden opgeeft in een letterlijke matrix. Als er geen bovengrens is opgegeven, wordt de grootte van de matrix afgeleid op basis van het aantal waarden in de letterlijke matrix.

Een multidimensionale arrayvariabele initialiseren met behulp van arraylettertypen

  • Nest waarden binnen accolades ({}) binnen accolades. Zorg ervoor dat de geneste matrices allemaal worden geïnterpreteerd als arrays van hetzelfde type en dezelfde lengte. In het volgende codevoorbeeld ziet u verschillende voorbeelden van initialisatie van multidimensionale matrices.

    Dim numbers = {{1, 2}, {3, 4}, {5, 6}}
    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}}}
    
  • U kunt de grenzen van de array expliciet opgeven, of ze weglaten zodat de compiler de grenzen van de array afleidt op basis van de waarden in de array-literal. Als u zowel de bovengrenzen als de waarden opgeeft, moet u een waarde voor elk element van index 0 tot en met de bovengrens in elke dimensie opnemen. In het volgende voorbeeld ziet u verschillende manieren om een variabele te declareren, te maken en te initialiseren die een tweedimensionale matrix bevat die elementen van het type bevat Short

    ' The following five lines of code create the same array.
    ' Preferred syntaxes are on the lines with scores1 and scores2.
    Dim scores1 = {{10S, 10S, 10S}, {10S, 10S, 10S}}
    Dim scores2 As Short(,) = {{10, 10, 10}, {10, 10, 10}}
    
    Dim scores3(,) As Short = {{10, 10, 10}, {10, 10, 10}}
    Dim scores4 As Short(,) = New Short(1, 2) {{10, 10, 10}, {10, 10, 10}}
    Dim scores5(,) As Short = New Short(1, 2) {{10, 10, 10}, {10, 10, 10}}
    

    Nadat elke instructie is uitgevoerd, bevat de gemaakte matrix zes geïnitialiseerde elementen met indexen (0,0), (0,1), (0,2), , (1,0), (1,1)en (1,2). Elke matrixlocatie bevat de waarde 10.

  • In het volgende voorbeeld wordt een multidimensionale array doorlopen. Plak de code in de Sub Main() methode van een Windows-consoletoepassing die in Visual Basic is geschreven. In de laatste opmerkingen wordt de uitvoer weergegeven.

    Dim numbers = {{1, 2}, {3, 4}, {5, 6}}
    
    ' Iterate through the array.
    For index0 = 0 To numbers.GetUpperBound(0)
        For index1 = 0 To numbers.GetUpperBound(1)
            Debug.Write(numbers(index0, index1).ToString & " ")
        Next
        Debug.WriteLine("")
    Next
    ' Output
    '  1 2
    '  3 4
    '  5 6
    

Een onregelmatige matrixvariabele initialiseren met behulp van letterlijke matrixmatrices

  • Plaats objectwaarden binnen accolades ({}). Hoewel u ook array-literal kunt nesten die arrays van verschillende lengten specificeren, moet u er in het geval van een getande array voor zorgen dat de geneste array-literals in haakjes (()) staan. De haakjes dwingen de evaluatie van de geneste array-literals af en de resulterende arrays worden gebruikt als de initiële waarden van de gekartelde array. In het volgende codevoorbeeld ziet u twee voorbeelden van initialisatie van een gekartelde array.

    ' Create a jagged array of arrays that have different lengths.
    Dim jaggedNumbers = {({1, 2, 3}), ({4, 5}), ({6}), ({7})}
    
    ' Create a jagged array of Byte arrays.
    Dim images = {New Byte() {}, New Byte() {}, New Byte() {}}
    
  • In het volgende voorbeeld wordt een gekartelde array doorlopen. Plak de code in de Sub Main() methode van een Windows-consoletoepassing die in Visual Basic is geschreven. In de laatste opmerkingen in de code wordt de uitvoer weergegeven.

    ' Create a jagged array of arrays that have different lengths.
    Dim jaggedNumbers = {({1, 2, 3}), ({4, 5}), ({6}), ({7})}
    
    For indexA = 0 To jaggedNumbers.Length - 1
        For indexB = 0 To jaggedNumbers(indexA).Length - 1
            Debug.Write(jaggedNumbers(indexA)(indexB) & " ")
        Next
        Debug.WriteLine("")
    Next
    
    ' Output:
    '  1 2 3 
    '  4 5 
    '  6
    '  7
    

Zie ook