我需要在VBA中制作一些需要互相引用的自定义对象,我有一些问题.
首先 - 对象构造函数如何在VBA中工作?有施工人员吗?
第二 - 有破坏者吗?VBA如何处理对象生命周期的结束?如果我有一个引用其他对象的对象(这是他们唯一的引用),那么我可以将它设置为Nothing并用它完成或者是否会产生内存泄漏?
这种准OO的东西只是有点刺激.
VBA支持类模块.它们具有构造函数的Class_Initialize事件和作为析构函数的Class_Terminate.您可以定义属性和方法.我相信VBA使用对象生命周期的引用计数.这就是为什么你会在那种类型的代码中看到很多Set whatever = Nothing的原因.在您的示例中,我认为它不会泄漏任何内存.但是你需要注意循环引用.
如果要在VBA中创建类模块,对于构造函数,可以使用:
Private Sub class_initialize() .... End Sub
没有析构函数,因为VBA是垃圾收集的.只需确保清理任何循环引用,您应该避免任何可能的内存泄漏.
自从我使用它们已经有一段时间了,但我认为你不能将参数传递给构造函数.我认为这是我遇到的问题之一,但我遇到了很多关于这些课程如何工作的问题,以及我如何期望它们能够工作,我可能会记错了.
存在Class_Terminate,它与析构函数几乎相同.