Memory management 本地对象一旦超出范围,是否会被垃圾收集?

Memory management 本地对象一旦超出范围,是否会被垃圾收集?,memory-management,memory-leaks,vb6,garbage-collection,Memory Management,Memory Leaks,Vb6,Garbage Collection,假设我有一个函数 Private Sub DoThing() Dim o As ComplexObject ' with possible backreference Set o = ComplexThing() Call DoStuff(o) End Sub 我的直觉告诉我,一旦函数退出,o将被设置为Nothing(并因此被垃圾收集),但我找不到任何文档来证实或反驳这一点。是的,只要DoStuff()不做任何会增加o的引用计数器的操作,它的引用计数将为0,此时它的资源将被释放。以

假设我有一个函数

Private Sub DoThing()
  Dim o As ComplexObject ' with possible backreference
  Set o = ComplexThing()
  Call DoStuff(o)
End Sub

我的直觉告诉我,一旦函数退出,
o
将被设置为
Nothing
(并因此被垃圾收集),但我找不到任何文档来证实或反驳这一点。

是的,只要DoStuff()不做任何会增加o的引用计数器的操作,它的引用计数将为0,此时它的资源将被释放。

以确定的方式释放和释放。这里根本不涉及“垃圾收集”,因为它不是必需的。毕竟,这不是像.Net那样管理薄弱的环境。所以这个问题的答案是“不”,但这个问题表达不当