Co je to UBound a LBound v jazyce Visual Basic?
Definice
Funkce UBound vrací hodnotu nejvyššího indexu dostupného pro vyznačenou kótu pole. Funkce LBound činí opak, protože vrátí nejnižší index, který je k dispozici pro vyznačenou dimenzi pole. Hodnota návratnosti obou funkcí je data typu celé číslo. Pokud pole má pouze jeden prvek, UBound vrátí 0. Funkce LBound vždy vrátí 0, dokud pole bylo inicializováno, i když nemá žádné prvky.
Rozměry uspořádání
Když matice používá index, je údajně jednorozměrný. Multidimenzionální pole používá více než jeden index nebo index. Můžete také prohlásit tzv. Režimy nepravidelných ujednání nebo ujednání. Ty mohou být jednorozměrné nebo vícerozměrné, stejně jako definované prvky. Například pokud deklarujete dvojrozměrné pole měsíců, jeden index představuje měsíce a další dny. Měsíce mají různý počet dnů, proto vaše prvky nebudou tvořit dvourozměrné obdélníkové uspořádání. Ve VB bude pole deklarováno tak, jak je uvedeno níže:
Dim monthsArray (11, 30) Jako řetězec
Určení maximálního rozměru
Indexy začínají u 0 pro každé uspořádání a maximální je definováno číslem, které zapíšeme do pole pro každý index. Můžete deklarovat vícerozměrné pole typu Byte pomocí následující syntaxe:
Dim (200, 10, 2) Jako byte
Délku pole můžete získat pro každý dolní index pomocí funkce UBound. Syntaxe "Ubound (a, 1)" [bez uvozovek] vrací hodnotu "200". Změňte polohu dolního indexu na hodnotu "2" a výsledek bude "10". Chcete-li získat velikost třetího dolního indexu, změňte pozici na hodnotu "3".
Stanovení minimálního rozměru
V pořadech začíná index vždy začínat na 0, a proto nejmenší index dostupný pro každou dimenzi je vždy 0. Deklarujte další pole typu Byte a použijte funkci LBound pro získání nejmenšího dostupného dolního indexu:
Dim (200, 10, 2) Jako byte
Chcete-li zjistit nejmenší hodnotu prvního indexu, použijte syntaxi (LBound (a, 1) "[bez úvodzovkách], abyste získali 0. V důsledku toho změňte index na hodnotu" 2 "a funkce také vrátí hodnotu" 0 ". změňte index na hodnotu "3" a vrácená hodnota zůstane "0".