cool web a perfektni rs- Doporucuji

Monday, April 16, 2007

VB6.

Také při práci s poli (arrays), ostatně jako skoro všude jinde, došlo k několika velmi
podstatným změnám. Pole se číslují zásadně od nuly, z čehož mj. plyne, že je nadbytečný příkaz
Option Base, proto se nepodporuje.
Horní mez v deklaraci pole určuje výchozí počet prvků pole (v našem výpisu konkrétně 3), nikoli
počet prvků plus jedna, jako tomu bylo dříve! Horní mez je tedy počet prvků mínus 1
a tuto hodnotu vrátí vestavěná funkce UBound.
Deklarace pole pevné délky s explicitní dolní a horní mezí, jako například
Dim Trojice(0 To 3) As Integer
se už nepodporuje. Připomínám, že dolní mez všech polí musí být ve VB.NET nula. Prvky
pole však můžete inicializovat výchozími hodnotami. Například:
Dim Trojice() As Integer = {9, 8, 7}
Vícerozměrné pole můžete deklarovat pomocí pozičních závorek. Například trojrozměrné pole
celých čísel příkazem:
Dim Kvádr(,,) As Integer
Několik „drobných“ rozdílů je také spojeno s příkazem ReDim, který se používá
k předimenzování dynamického pole. Lze už měnit velikost kteréhokoli rozměru, počet rozměrů
však musí zůstat stejný.
Tedy, zatímco ve VB6 všechno následující projde:
Dim K() As Integer ' V deklarační sekci
' V proceduře pak:
ReDim K(5)
MsgBox (UBound(K)) '6
ReDim K(-1 To 7)
MsgBox (UBound(K) - LBound(K) + 1) '9
ReDim K(4, 5)
MsgBox (UBound(K)) '4
ve VB.NET tomu tak není. Chování ve VB.NET ilustrují následující ukázky:
Dim Kvádr(,,) As Integer ' V deklarační sekci
' V proceduře pak:
ReDim kvádr(5, 7, 9)
ReDim kvádr(10, 10) ' změna počtu rozměrů nejde
Dim krychle() As Integer ' V deklarační sekci
' V proceduře pak:
ReDim krychle(5)
ReDim krychle(5, 5)
Poslední příkaz neprojde, protože počet rozměrů nejde měnit. VB.NET vám oznámí, že
„Cannot change the Rank in a ReDim“).
Poslední připomínka. Ve VB6 jste mohli i úvodní deklaraci pole zařídit příkazem ReDim. Ve
VB.NET se to už nepovoluje.

Labels: