Řešení potíží s poli (Visual basic)
Na této stránce jsou uvedeny některé běžné problémy, které se mohou vyskytnout při práci s poli.
Chyby kompilace deklarování a inicializace pole
Chyby kompilace mohou vzniknout z neporozumění pravidla pro deklarování, vytvoření a inicializace pole.Nejčastější příčinou chyby jsou následující:
Zásobování New – operátor (Visual Basic) klauzule po určení délky dimenze v deklaraci proměnné array.Následující řádky kódu zobrazit neplatné prohlášení tohoto typu.
Dim INVALIDsingleDimByteArray(2) As Byte = New Byte()
Dim INVALIDtwoDimShortArray(1, 1) As Short = New Short(,)
Dim INVALIDjaggedByteArray(1)() As Byte = New Byte()()
Určení délky dimenze pro více než pole nejvyšší úrovně vícenásobné pole.Neplatná deklarace tohoto typu se zobrazí následující řádek kódu.
Dim INVALIDjaggedByteArray(1)(1) As Byte
Vynechání New klíčové slovo při určování hodnoty prvku.Neplatná deklarace tohoto typu se zobrazí následující řádek kódu.
Dim INVALIDoneDimShortArray() As Short = Short() {0, 1, 2, 3}
Zásobování New klauzule bez závorek ({}).Následující řádky kódu zobrazit neplatné prohlášení tohoto 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)
Přístup k poli mimo rozsah
Proces inicializace pole přiřadí každé dimenze horní mez a dolní mez.Každý přístup na prvek pole musíte zadat platný index nebo dolní index pro každou dimenzi.Pokud je každý index pod jeho dolní mez nebo nad jeho horní mez IndexOutOfRangeException výsledky výjimku.Kompilátor nemůže detekovat k chybě, takže dojde k chybě za běhu.
Určení hranice.
Pokud jiné součásti projde kódu pole, například jako argumentu procedury, neznáte velikost daného pole nebo délky jeho rozměry.Horní mez pro každou dimenzi matice je vždy určit, před pokusem o přístup k žádné prvky.Pokud matice byla vytvořena některé prostředky než Visual BasicNew klauzule, dolní mez může být něco jiného než 0 a je nejbezpečnější určit, že dolní mez.
Určení dimenze
Při určování hranice vícedimenzionální pole starat, jak zadat dimenzi.dimension Parametry GetLowerBound a GetUpperBound jsou metody založené na 0, při Rank parametry Visual BasicLBound a UBound funkce jsou založeny na 1.
Viz také
Úkoly
Postupy: Inicializace proměnné pole v jazyce Visual Basic