假设我有一个带有对象作为成员变量的类模块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。

关于vb6 - 该VB6成员变量何时被销毁?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/86365/

10-12 00:58