假设我有一个clsMyClass
带有对象作为成员变量的类模块.下面列出了这个非常简单的类的两个完整实现.
实施1:
Dim oObj As New clsObject
实施2:
Dim oObj As clsObject Private Sub Class_Initialize() Set oObj = New clsObject End Sub Private Sub Class_Terminate() Set oObj = Nothing End Sub
这两者之间有什么功能差异吗?特别是,寿命是oObj
一样的吗?
在实现1中,clsObject在使用之前不会被实例化.如果从未使用过,那么clsObject.Class_Initialize事件将永远不会触发.
在实现2中,将在实例化clsMyClass的同时创建clsObject实例.如果创建了clsMyClass,则始终会执行clsObject.Class_Initialize.