Udostępnij za pośrednictwem


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.

Zobacz też