我在“声明”模块中定义为公共的二维数组的类中使用 Redim。但是,根据 Redim 之后程序流程的位置,可能会丢失尺寸。模式是,当我在该类中实例化另一个对象(类)时,然后在该新对象中运行小进程并返回公共数组的维度较低。因此,如果新对象从未被实例化出去工作,则结果确认不会发生元素丢失。
在我的示例中,Redim 是 A(20,1),但是在使用实例化类完成一项小的外部工作之后(在这个类之外,我们在 --> 使用 Redim),尺寸是 A(19,0)。
Redim 有基于使用位置的规则,所以我的问题是如何保留在声明模块中声明公共数组,然后在实例化对象(类)中的这些数组上使用 Redim 而不会丢失维度?
下面是示例代码,这将导致此问题:
Module mymod()
Public A(,) As single
End Module
In button 1:
Dim obj as New Test
Class Test
Sub New
Call mytest()
End Sub
Sub mytest()
Redim A(20,1)
'Here is where A will have dimensions (20,1)
Dim myobj as As New ClassB
'Here is where A will have dimensions (19,0)
End Sub
End Class
Class ClassB
Sub New()
Msgbox("hello")
End Sub
End Class