Rozwiązywanie problemów związanych z tablicami (Visual Basic)
Na tej stronie wymieniono niektóre typowe problemy, które mogą wystąpić podczas pracy z tablicami.
Błędy kompilacji deklarujące i inicjujące tablicę
Błędy kompilacji mogą wynikać z nieporozumienia reguł deklarowania, tworzenia i inicjowania tablic. Najczęstsze przyczyny błędów są następujące:
Podanie klauzuli Nowy operator po określeniu długości wymiarów w deklaracji zmiennej tablicy. Następujące wiersze kodu pokazują nieprawidłowe deklaracje tego typu.
Dim INVALIDsingleDimByteArray(2) As Byte = New Byte()
Dim INVALIDtwoDimShortArray(1, 1) As Short = New Short(,)
Dim INVALIDjaggedByteArray(1)() As Byte = New Byte()()
Określanie długości wymiarów dla więcej niż tablica najwyższego poziomu tablicy poszarpanej. Poniższy wiersz kodu przedstawia nieprawidłową deklarację tego typu.
Dim INVALIDjaggedByteArray(1)(1) As Byte
Pomijając
New
słowo kluczowe podczas określania wartości elementu. Poniższy wiersz kodu przedstawia nieprawidłową deklarację tego typu.Dim INVALIDoneDimShortArray() As Short = Short() {0, 1, 2, 3}
Podawanie klauzuli
New
bez nawiasów klamrowych ({}
). Następujące wiersze kodu pokazują nieprawidłowe deklaracje tego typu.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)
Uzyskiwanie dostępu do tablicy poza granicami
Proces inicjowania tablicy przypisuje górną granicę i dolną granicę do każdego wymiaru. Każdy dostęp do elementu tablicy musi określać prawidłowy indeks lub indeks dolny dla każdego wymiaru. Jeśli jakikolwiek indeks znajduje się poniżej dolnej granicy lub powyżej górnej IndexOutOfRangeException granicy, zostanie wyświetlony wyjątek. Kompilator nie może wykryć takiego błędu, więc w czasie wykonywania występuje błąd.
Określanie granic
Jeśli inny składnik przekazuje tablicę do kodu, na przykład jako argument procedury, nie znasz rozmiaru tej tablicy ani długości jej wymiarów. Przed próbą uzyskania dostępu do dowolnych elementów należy zawsze określić górną granicę dla każdego wymiaru tablicy. Jeśli tablica została utworzona za pomocą środków innych niż klauzula Języka Visual Basic New
, dolna granica może być czymś innym niż 0 i jest najbezpieczniejsza, aby określić, że dolna granica również.
Określanie wymiaru
Podczas określania granic tablicy wielowymiarowej należy zadbać o sposób określania wymiaru. dimension
Parametry GetLowerBound metod i GetUpperBound są oparte na 0, a Rank
parametry języka Visual Basic LBound i UBound funkcje są oparte na 1.