Megosztás a következőn keresztül:


Útmutató: Tömbváltozó inicializálása a Visual Basicben

A tömbváltozót úgy inicializálhatja, hogy egy tömbkonstanst beleszámít egy New záradékba, és megadja a tömb kezdeti értékeit. Megadhatja a típust, vagy engedélyezheti a tömbkonstans értékeiből való következtetést. A típus kikövetkeztetéséről további információt a Tömbökben található "Tömb feltöltése kezdeti értékekkel" című témakörben talál.

Tömbváltozó inicializálása tömbkonstans használatával

  • A záradékban New vagy a tömbérték hozzárendelésekor adja meg az elemértékeket a kapcsos zárójelekben ({}). Az alábbi példa számos módszert mutat be egy változó deklarálására, létrehozására és inicializálására egy olyan tömbhöz, amely típuselemekkel Charrendelkezik.

    ' 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}
    

    Az egyes utasítások végrehajtása után a létrehozott tömb hossza 3, a kezdeti értékeket tartalmazó 0 és 2 index között lévő elemek. Ha a felső határt és az értékeket is megadja, a 0 indextől a felső határig minden elemhez meg kell adnia egy értéket.

    Figyelje meg, hogy nem kell megadnia az index felső határát, ha elemértékeket ad meg egy tömbkonstansban. Ha nincs megadva felső határ, a tömb mérete a tömbkonstans értékeinek száma alapján lesz levonva.

Többdimenziós tömbváltozó inicializálása tömbkonstansok használatával

  • Az értékeket kapcsos zárójelekbe ({}) ágyazva. Győződjön meg arról, hogy a beágyazott tömbkonstansok mind azonos típusú és hosszúságú tömbökként következtetnek. Az alábbi példakód többdimenziós tömb inicializálására mutat be példákat.

    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}}}
    
  • Explicit módon megadhatja a tömbhatárokat, vagy kihagyhatja őket, és a fordító a tömbkonstans értékei alapján következtethet a tömbhatárokra. Ha a felső határokat és az értékeket is megadja, minden elemhez meg kell adnia egy értéket a 0 indextől a felső határig minden dimenzióban. Az alábbi példa többféleképpen is deklarálhat, hozhat létre és inicializálhat egy változót úgy, hogy olyan kétdimenziós tömböt tartalmazzon, amely típuselemekkel rendelkezik 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}}
    

    Az egyes utasítások végrehajtása után a létrehozott tömb hat inicializált elemet tartalmaz, amelyek indexekkel(0,0), (0,1), , (0,2), (1,0)(1,1)és (1,2). Minden tömbhely tartalmazza az értéket 10.

  • Az alábbi példa egy többdimenziós tömbön halad végig. A Visual Basicben írt Windows-konzolalkalmazásban illessze be a kódot a Sub Main() metódusba. Az utolsó megjegyzések a kimenetet mutatják.

    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
    

Szaggatott tömbváltozó inicializálása tömbkonstansok használatával

  • Objektumértékek beágyazása kapcsos zárójelekbe ({}). Bár különböző hosszúságú tömbkonstansokat is beágyazhat, szaggatott tömb esetén győződjön meg arról, hogy a beágyazott tömbkonstansok zárójelek (()) közé vannak zárva. A zárójelek kényszerítik a beágyazott tömbkonstansok kiértékelését, és az eredményként kapott tömbök lesznek a szaggatott tömb kezdeti értékei. Az alábbi példakód két példát mutat be a szaggatott tömb inicializálására.

    ' 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() {}}
    
  • Az alábbi példa egy szaggatott tömbön halad végig. A Visual Basicben írt Windows-konzolalkalmazásban illessze be a kódot a Sub Main() metódusba. A kód utolsó megjegyzései a kimenetet mutatják.

    ' 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
    

Lásd még