在VB6中初始化UDT数组
我已经声明了一个UDT,我需要用UDT的特定记录初始化一个数组,我将如何在模块级别执行该操作 这是我试过的在VB6中初始化UDT数组,vb6,initialization,user-defined-types,Vb6,Initialization,User Defined Types,我已经声明了一个UDT,我需要用UDT的特定记录初始化一个数组,我将如何在模块级别执行该操作 这是我试过的 Public Type MyType id As Integer name As String values As Double End Type private MY_TYPES(1) As MyType My_TYPES(0) = newMyType(1, "Item 1", 15.9) My_TYPES(1) = newMyType(2, "It
Public Type MyType
id As Integer
name As String
values As Double
End Type
private MY_TYPES(1) As MyType
My_TYPES(0) = newMyType(1, "Item 1", 15.9)
My_TYPES(1) = newMyType(2, "Item 2", 30.2)
Private Function newMyType(byval id as Integer, byval name as String, _
byval v as Double) As MyType
Dim t As MyType
t.id = id
t.name = name
t.value = v
newMyType = t
End Function
我得到的错误是外部过程无效
正如您所看到的,我试图重现java集合的静态初始化,比如列表
或集合
我想将集合公开为常量,如何实现这一点?您必须将以下两行放在sub中,然后调用sub以初始化udt
My_TYPES(0) = newMyType(1, "Item 1", 15.9)
My_TYPES(1) = newMyType(2, "Item 2", 30.2)
或者,您可以将这两行放在if内的工作子模块中。然后,使用模块级初始化布尔值,您必须将以下两行放在子模块中,然后调用子模块初始化udt
My_TYPES(0) = newMyType(1, "Item 1", 15.9)
My_TYPES(1) = newMyType(2, "Item 2", 30.2)
或者,您可以将这两行放在if.内部的工作子模块中,然后使用模块级别的init boolean将分配给My_TYPES数组的两行写入过程之外。它们必须位于函数/子/属性(如newMyType函数)内。分配给My_TYPES数组的两行不能在过程外写入。它们必须位于函数/子函数/属性(如newMyType函数)内。+1。如果您的模块是一个类,您可以将这些行放入类_initialize中,以便它们自动运行。如果在BAS模块+1中,您需要自己管理初始化。如果您的模块是一个类,您可以将这些行放入类_initialize中,以便它们自动运行。如果在BAS模块中,您需要自己管理初始化