Porady: inicjowanie zmiennej tablicy w języku Visual Basic
Zmienną tablicową należy zainicjować, dołączając literał tablicy w klauzuli New
i określając początkowe wartości tablicy. Można określić typ lub zezwolić na wnioskowanie z wartości w literału tablicy. Aby uzyskać więcej informacji na temat wnioskowania typu, zobacz "Wypełnianie tablicy przy użyciu wartości początkowych" w tablicach.
Aby zainicjować zmienną tablicową przy użyciu literału tablicy
Albo w klauzuli
New
, albo po przypisaniu wartości tablicy podaj wartości elementu wewnątrz nawiasów klamrowych ({}
). W poniższym przykładzie pokazano kilka sposobów deklarowania, tworzenia i inicjowania zmiennej zawierającej tablicę zawierającą elementy typuChar
.' 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}
Po wykonaniu każdej instrukcji utworzona tablica ma długość 3, z elementami indeksu od 0 do indeksu 2 zawierającymi wartości początkowe. Jeśli podasz zarówno górną granicę, jak i wartości, musisz uwzględnić wartość dla każdego elementu z indeksu 0 przez górną granicę.
Zwróć uwagę, że nie musisz określać górnej granicy indeksu, jeśli podasz wartości elementów w literału tablicy. Jeśli nie określono górnej granicy, rozmiar tablicy jest wnioskowany na podstawie liczby wartości w literału tablicy.
Aby zainicjować zmienną tablicy wielowymiarowej przy użyciu literałów tablicy
Zagnieżdż wartości wewnątrz nawiasów klamrowych (
{}
) w nawiasach klamrowych. Upewnij się, że zagnieżdżone literały tablicy są wnioskowane jako tablice tego samego typu i długości. Poniższy przykład kodu przedstawia kilka przykładów inicjowania tablicy wielowymiarowej.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}}}
Można jawnie określić granice tablicy lub pozostawić je na wyjściu i wywnioskować granice tablicy na podstawie wartości literału tablicy. Jeśli podasz zarówno górne granice, jak i wartości, musisz uwzględnić wartość dla każdego elementu z indeksu 0 przez górną granicę w każdym wymiarze. W poniższym przykładzie pokazano kilka sposobów deklarowania, tworzenia i inicjowania zmiennej zawierającej tablicę dwuwymiarową zawierającą elementy typu
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}}
Po wykonaniu każdej instrukcji utworzona tablica zawiera sześć zainicjowanych elementów, które mają indeksy
(0,0)
, ,(0,1)
,(0,2)
(1,0)
,(1,1)
, i(1,2)
. Każda lokalizacja tablicy zawiera wartość10
.Poniższy przykład iteruje tablicę wielowymiarową. W aplikacji konsolowej systemu Windows napisanej w Visual Basic wklej kod wewnątrz
Sub Main()
metody . Ostatnie komentarze pokazują dane wyjściowe.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
Aby zainicjować zmienną tablicy postrzępionej przy użyciu literałów tablicy
Zagnieżdżanie wartości obiektów wewnątrz nawiasów klamrowych (
{}
). Mimo że można również zagnieżdżać literały tablic, które określają tablice o różnych długościach, w przypadku tablicy postrzępionej upewnij się, że zagnieżdżone literały tablicy są ujęte w nawiasy (()
). Nawiasy wymuszają ocenę zagnieżdżonych literałów tablicy, a wynikowe tablice są używane jako początkowe wartości tablicy postrzępionej. Poniższy przykład kodu przedstawia dwa przykłady inicjowania tablicy postrzępionej.' 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() {}}
Poniższy przykład iteruje po tablicy postrzępionej. W aplikacji konsolowej systemu Windows napisanej w Visual Basic wklej kod wewnątrz
Sub Main()
metody . Ostatnie komentarze w kodzie pokazują dane wyjściowe.' 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