一、首先创建三个基础类(ClassA、ClassB、ClassC)
‘ ClassA.cls
‘(空类,可根据需要添加属性或方法,见 建立类模块)
‘ ClassB.cls
‘(空类,可根据需要添加属性或方法,见 建立类模块)
‘ ClassC.cls
‘(空类,可根据需要添加属性或方法,见 建立类模块)
二、创建主类(MainClass)包含三个集合
‘ MainClass.cls
Option Explicit
Private m_colItemsA As Collection
Private m_colItemsB As Collection
Private m_colItemsC As Collection
‘ 类初始化时创建集合
Private Sub Class_Initialize()
Set m_colItemsA = New Collection
Set m_colItemsB = New Collection
Set m_colItemsC = New Collection
End Sub
‘ 添加ClassA实例到集合A
Public Sub AddItemA(objA As ClassA)
m_colItemsA.Add objA
End Sub
‘ 添加ClassB实例到集合B
Public Sub AddItemB(objB As ClassB)
m_colItemsB.Add objB
End Sub
‘ 添加ClassC实例到集合C
Public Sub AddItemC(objC As ClassC)
m_colItemsC.Add objC
End Sub
‘ 获取集合A(只读)
Public Property Get ItemsA() As Collection
Set ItemsA = m_colItemsA
End Property
‘ 获取集合B(只读)
Public Property Get ItemsB() As Collection
Set ItemsB = m_colItemsB
End Property
‘ 获取集合C(只读)
Public Property Get ItemsC() As Collection
Set ItemsC = m_colItemsC
End Property
‘ 清理资源
Private Sub Class_Terminate()
Set m_colItemsA = Nothing
Set m_colItemsB = Nothing
Set m_colItemsC = Nothing
End Sub
三、使用示范
Dim mainObj As New MainClass
Dim objA As New ClassA
Dim objB As New ClassB
Dim objC As New ClassC
‘ 添加对象到各个集合
mainObj.AddItemA objA
mainObj.AddItemB objB
mainObj.AddItemC objC
‘ 遍历集合示例
Dim item As Object
For Each item In mainObj.ItemsA
‘ 处理ClassA实例
Next
For Each item In mainObj.ItemsB
‘ 处理ClassB实例
Next
For Each item In mainObj.ItemsC
‘ 处理ClassC实例
Next
四、代码说明
- 三个基础类(ClassA/B/C)可根据实际需求添加成员
- MainClass使用Collection对象管理三个不同类型的集合
- 通过AddItemX方法确保类型安全,只能添加指定类型的实例
- 通过只读属性ItemsX暴露集合的访问
- 在Class_Terminate中释放集合资源
- 使用For Each循环可以方便地遍历集合成员
五、注意事项
VB6的集合是1-based索引(从1开始),如果需要更强大的集合操作,可以考虑使用Dictionary对象或自定义集合类。