2015-11-19 2 views
0

Скажем, у меня есть функцияСобирают ли местные объекты мусор после их падения?

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

Мой инстинкт подсказывает мне, что o будет установлен в Nothing (и, таким образом, сборку мусора) как только функция выходов, но я не могу найти какую-либо документацию, чтобы подтвердить или опровергнуть это ,

ответ

2

Да, до тех пор, пока DoStuff() не выполняет никакой операции, которая увеличивала бы счетчик ссылок o, счетчик ссылок будет равен 0, и ресурсы будут освобождены в это время.

+0

Освобожден и деактивирован детерминированным образом. Здесь нет никакой «сборки мусора», потому что это необязательно. Это не какая-то слабо управляемая среда, как .Net в конце концов. Таким образом, ответ на вопрос «нет», но вопрос неверно выражен. – Bob77

+0

+1 И вот [VB6 документация по этому вопросу] (https://msdn.microsoft.com/en-us/library/aa716330 (v = vs.60) .aspx) – MarkJ

Смежные вопросы