VB应如何使用动态数组?
1、 (如果希望数组为公用数组,则)用 Public 语句声明数组,或者,(如果希望数组为模块级,则)在模块级用 Dim 语句声明数组,或者(如果希望数组为局部数组,则)在过程中用 Static 或 Dim 语句声明数组。给数组附以一个空维数表,这样就将数组声明为动态数组。 DimDynArray() ReDimDynArray(X+1)用 ReDim 语句分配实际的元素个数。 ReDim 语句只能出现在过程中。与 Dim 语句、Static 语句不同,ReDim 语句是一个可执行语句,由于这一语句,应用程序在运行时执行一个操作。ReDim 语句支持这样的语法,它与固定数组中使用的语法相同。对于每一维数,每个 ReDim 语句都能改变元素数目以及上下界。但是,数组的维数不能改变。 ReDimDynArray(4to12)例如,用第一次声明在模块级所建立的动态数组 Matrix1: DimMatrix1()AsInteger
2、然后,在过程中给数组分配空间: SubCalcValuesNow() ReDimMatrix1(19,29) EndSub 这里的 ReDim 语句给 Matrix 分配一个 20 × 30 的整数矩阵(元素总大小为 600)。还有一个办法,用变量设置动态数组的边界: ReDimMatrix1(X,Y)注意: 您可以将字符串赋值给大小可变的字节数组。一个字节数组也可以被赋值给一个可变长的字符串。一定要注意字符串中的字节数会随平台而变化。同一个字符串 Unicode 平台上的字节数是它在非 Unicode 平台上的两倍。
3、保留动态数组的内容: 每次执行 ReDim 语句时,当前存储在数组中的值都会全部丢失。V坡纠课柩isual Basic 邓咀挚垡重新将数组元素的值置为 Empty(对 Variant 数组)、置为 0(对 Numeric 数组)、置为 零长度字符串(对 String 数组)或者置为 Nothing(对于对象的数组)。 在为新数据准备数组,或者要缩减数组大小以节省内存时,这样做是非常有用的。有时希望改变数组大小又不丢失数组中的数据。使用具有 Preserve 关键字的 ReDim 语句就可做到这点。例如,使用 UBound 函数引用上界,使数组扩大、增加一个元素,而现有元素的值并未丢失: ReDimPreserveDynArray(UBound(DynArray)+1) 在用 Preserve 关键字时,只能改变多维数组中最后一维的上界;如果改变了其它维或最后一维的下界,那么运行时就会出错。所以可这样编程: ReDimPreserveMatrix(10,UBound(Matrix,2)+1)而不可这样编程: ReDimPreserveMatrix(UBound(Matrix,1)+1,10)