ReDim — Instrukcja (Visual Basic)
Reallocates miejsca na przechowanie zmienną tablicową.
ReDim [ Preserve ] name(boundlist) [ , name(boundlist) [, ... ] ]
Części
Termin |
Definicja |
---|---|
Preserve |
Opcjonalne.Modyfikator wykorzystywane do zachowania danych w istniejącej tablicy, zmiany rozmiaru tylko ostatni wymiar. |
name |
Wymagane.Nazwa zmiennej tablicy.Zobacz Zadeklarowane nazwy elementów (Visual Basic). |
boundlist |
Wymagane.Lista granic dla każdego wymiaru tablicy nowo. |
Uwagi
Można użyć ReDim instrukcji, aby zmienić rozmiar co najmniej jeden wymiar tablicy, która została już zadeklarowana.Jeśli masz dużej tablicy, a niektóre z jego elementów, nie są już potrzebne ReDim można zwolnić pamięć, zmniejszając rozmiar tablicy.Z drugiej strony, jeśli macierzy potrzebuje więcej elementów ReDim można je dodać.
ReDim Instrukcja jest przeznaczona tylko dla tablic.Nie jest prawidłowy w wielkości skalarne (zmiennych, które zawierają tylko jedną wartość), kolekcje lub struktury.Należy zauważyć, że jeśli zadeklarujemy zmienną się typ Array, ReDim instrukcja nie ma wystarczających informacji typu, aby utworzyć nową macierz.
Można użyć ReDim tylko na poziomie procedury.W związku z tym w kontekście deklaracji zmiennej musi być procedurą; nie może być plikiem źródłowym, obszar nazw, interfejsu, klasy, struktury, moduł lub bloku.Aby uzyskać więcej informacji, zobacz Kontekst deklaracji i domyślne poziomy dostępu (Visual Basic).
Reguły
Wielu zmiennych. Można zmienić rozmiar kilku zmiennych tablicowych w tej samej deklaracji i określić name i boundlist części dla każdej zmiennej.Wiele zmiennych są oddzielone przecinkami.
Granice tablicy. Każdy wpis w boundlist można określić dolną i górną granicę tego wymiaru.Dolna granica jest zawsze 0 (zero).Górna granica jest najwyższą wartością możliwe indeksu dla tego wymiaru, a nie długości wymiaru (która jest górna granica plus jeden).Indeks dla każdego wymiaru mogą różnić się od 0 do jego wartość górnej granicy.
Wymiary, w boundlist musi być zgodny z oryginalnym wymiarów (ranga) w tablicy.
**Typy danych.**ReDim Instrukcja nie można zmienić typ danych zmienną tablicową lub jego elementów.
**Inicjowanie.**ReDim Instrukcja nie może wprowadzać nowe wartości inicjowania dla elementów tablicy.
**Ranking.**ReDim Instrukcja nie może zmienić rangą tablicy w (liczba wymiarów).
Zmiana rozmiaru z zachowaniem. Klienci korzystający z Preserve, można zmienić rozmiar tylko ostatni wymiar tablicy.Dla wszystkich innych wymiarów należy określić granicę istniejącej tablicy.
Na przykład jeśli macierzy ma tylko jeden wymiar, można zmienić tego wymiaru i nadal zachować całą zawartość tablicy, ponieważ zmieniasz ostatniego i tylko dla wymiaru.Jednakże, jeśli macierzy ma dwa lub więcej wymiarów, można zmienić rozmiar tylko ostatni wymiar klienci korzystający z Preserve.
Właściwości. Można użyć ReDim dla właściwości, która posiada tablicę wartości.
Zachowanie
**Array, zamiennik.**ReDim zwalnia istniejącej tablicy i tworzy nową tablicę z taką samą pozycję. Nową tablicę zastępuje zwolnionego tablicy w zmiennej tablicy.
Inicjowanie bez zachowania. Jeśli nie określisz Preserve, ReDim inicjuje elementy nowej tablicy przy użyciu wartości domyślne dla ich typ danych.
Inicjowanie z zachowania. Jeśli określisz Preserve, Visual Basic kopiuje elementy z istniejącej tablicy do nowej tablicy.
Przykład
Poniższy przykład powoduje zwiększenie rozmiarów ostatniego wymiaru tablicy dynamicznej bez utraty danych istniejących w tablicy, a następnie zmniejsza rozmiar przy częściowa utrata danych.Wreszcie zmniejsza rozmiar powrót do wartości oryginalnej i inicjuje od nowa wszystkie elementy tablicy.
Dim intArray(10, 10, 10) As Integer
ReDim Preserve intArray(10, 10, 20)
ReDim Preserve intArray(10, 10, 15)
ReDim intArray(10, 10, 10)
Dim Instrukcja tworzy nową tablicę z trzech wymiarów.Każdego wymiaru jest zadeklarowana z granicą 10, więc indeks tablicy, dla każdego wymiaru może wynosić od 0 do 10.W dyskusji trzy wymiary są określane jako warstwy, wierszy i kolumn.
Pierwszy ReDim tworzy nową tablicę, która zastępuje istniejącej tablicy w zmiennej intArray.ReDimkopiuje wszystkie elementy z istniejącej tablicy do nowej tablicy.Ponadto dodaje 10 więcej kolumn na końcu każdego wiersza w każdej warstwie i inicjuje elementy w tych nowych kolumn do 0 (wartość domyślna Integer, który jest typem elementu tablicy).
Drugi ReDim tworzy innej nowej tablicy i kopiuje wszystkie elementy, które mieszczą się.Jednak pięć kolumn mogą zostać utracone od końca każdego wiersza w każdej warstwie.Nie jest problemem, jeśli zakończeniu korzystania z tych kolumn.Zmniejszenie rozmiarów dużej tablicy można zwolnić pamięć, która nie jest już potrzebny.
Trzeci ReDim tworzy innej nowej tablicy i usuwa innego pięć kolumn na końcu każdego wiersza w każdej warstwie.Tym razem nie kopiuje każdy istniejący element.Ta instrukcja zostanie przywrócona macierzy, do oryginalnego rozmiaru.Ponieważ nie zawiera instrukcja Preserve , modyfikator ustawia wszystkie elementy tablicy oryginalnej wartości domyślne.
Aby uzyskać dodatkowe przykłady, zobacz Tablice w Visual Basic.
Zobacz też
Informacje
Const — Instrukcja (Visual Basic)
Dim — Instrukcja (Visual Basic)
Erase — Instrukcja (Visual Basic)