1. 程式人生 > >vb中dim與redim的區別?

vb中dim與redim的區別?

dim:定義一個固定維數的陣列,如dim arr(100)。
redim:重新定義動態陣列的維數,必須先用dim定義一個動態陣列: dim arr(),然後可重新定義:redim arr(2,100)、redim arr(1000)。
在redim使用過程中,如果要保留陣列中的資料,需要使用Preserve關鍵字,如果不加該關鍵字,會清空原來的資料。
參閱百度百科:
ReDim 為陣列變數重新分配儲存空間。可選項修飾符 Preserve 當僅更改最後一個維度的大小時,用來保留現有陣列中的資料。
使用 ReDim 語句來更改某個已宣告陣列的一個或多個維度的大小。如果有一個較大的陣列,並且您不再需要它的某些元素,ReDim 可通過減小陣列大小來釋放記憶體。另一方面,如果程式碼確定某個陣列需要更多元素,ReDim 也可以新增它們。
ReDim 語句僅適用於陣列。它在標量(只包含單一值的變數)、集合或結構上是無效的。
僅可以在過程級使用 ReDim。這意味著,變數的“宣告上下文”必須是過程,而不能是原始檔、名稱空間、介面、類、結構、模組或塊。
例如:
有一個Byte陣列A,如果我們知道這個陣列上限最大隻能是4,就用Dim
Dim A As Byte(4)
但如果我們不能事先確定它的大小,或者需要在執行時改變它的大小就要用動態陣列
Dim A As Byte()
ReDim A(4)'這樣改變大小時會清空原來的資料
ReDim Preserve A(4)'這樣改變大小時會保留原來的資料