not*_*not 26 vba constructor destructor memory-leaks object
我需要在VBA中制作一些需要互相引用的自定义对象,我有一些问题.
首先 - 对象构造函数如何在VBA中工作?有施工人员吗?
第二 - 有破坏者吗?VBA如何处理对象生命周期的结束?如果我有一个引用其他对象的对象(这是他们唯一的引用),那么我可以将它设置为Nothing并用它完成或者是否会产生内存泄漏?
这种准OO的东西只是有点刺激.
Wil*_*rds 24
VBA支持类模块.它们具有构造函数的Class_Initialize事件和作为析构函数的Class_Terminate.您可以定义属性和方法.我相信VBA使用对象生命周期的引用计数.这就是为什么你会在那种类型的代码中看到很多Set whatever = Nothing的原因.在您的示例中,我认为它不会泄漏任何内存.但是你需要注意循环引用.
Col*_*lin 17
如果要在VBA中创建类模块,对于构造函数,可以使用:
Private Sub class_initialize()
....
End Sub
Run Code Online (Sandbox Code Playgroud)
没有析构函数,因为VBA是垃圾收集的.只需确保清理任何循环引用,您应该避免任何可能的内存泄漏.