Class 如何让类对象实例在Lotus脚本中删除自身?

Class 如何让类对象实例在Lotus脚本中删除自身?,class,lotusscript,Class,Lotusscript,Lotus脚本通常不允许类调用自己的Delete()过程 只有当具有对象引用的代码获取所有这些未使用的引用时,垃圾收集器才会将其删除 有办法解决这个问题吗 例如: 使用删除对象的外部过程,类实例可以调用它来终止自身 这将有效地将对对象实例的所有引用设置为零 像这样: 'In the module level: Private Sub DeleteObjectInstance(Obj As Variant) Delete Obj End Sub Class MySuicidalClas

Lotus脚本通常不允许类调用自己的Delete()过程

只有当具有对象引用的代码获取所有这些未使用的引用时,垃圾收集器才会将其删除

有办法解决这个问题吗

例如:


使用删除对象的外部过程,类实例可以调用它来终止自身

这将有效地将对对象实例的所有引用设置为零

像这样:

'In the module level:
Private Sub DeleteObjectInstance(Obj As Variant)
    Delete Obj
End Sub


Class MySuicidalClass
    Sub New()
    End Sub

    Sub Delete()
    End Sub

    Public Sub KillMyself()

        Call DeleteObjectInstance(Me)   'This works!

    End Sub

End Class

Sub Test
    Dim sc As MySuicidalClass
    Set sc = New MySuicidalClass

    Call sc.KillMyself()

    MsgBox "sc is Nothing = " & CStr(sc Is Nothing) 'shows: TRUE

End Sub
'In the module level:
Private Sub DeleteObjectInstance(Obj As Variant)
    Delete Obj
End Sub


Class MySuicidalClass
    Sub New()
    End Sub

    Sub Delete()
    End Sub

    Public Sub KillMyself()

        Call DeleteObjectInstance(Me)   'This works!

    End Sub

End Class

Sub Test
    Dim sc As MySuicidalClass
    Set sc = New MySuicidalClass

    Call sc.KillMyself()

    MsgBox "sc is Nothing = " & CStr(sc Is Nothing) 'shows: TRUE

End Sub