首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >何时需要在VBA中释放对象

何时需要在VBA中释放对象
EN

Stack Overflow用户
提问于 2009-11-18 03:42:09
回答 1查看 3.3K关注 0票数 3

在查看这段代码时(为了简化这个问题,大部分代码都被删除了),我开始想知道是否需要处理我使用的集合或类。

代码语言:javascript
复制
Option Explicit    
Private terminals As Collection

Sub BuildTerminalSummary()
  Dim terminal As clsTerminal
  Call LoadTerminals
  For Each terminal in terminals
  ...Do work here
  Next terminal

  Set terminals = Nothing

End Sub

Private Sub LoadTerminals()
  Do
    Set terminal = New clsTerminal

    ...Do work here

    'Add terminal to terminals collection
    terminals.Add terminal, key

  Loop Until endCondition
End Sub

在处理VBA时,我应该在什么时候释放对象(如果有的话)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-11-18 03:54:29

在我看来,您似乎将终端集合的作用域放在了错误的位置。让LoadTerminals返回创建终端集合:-

代码语言:javascript
复制
Option Explicit    

Sub BuildTerminalSummary()

  Dim terminals As Collection
  Dim terminal As clsTerminal

  Set terminals = LoadTerminals

  For Each terminal in terminals
  ...Do work here
  Next terminal

End Sub

Private Function LoadTerminals() As Collection
  Dim terminals As Collection : Set terminals = New Collection
  Do
    Set terminal = New clsTerminal

    '' # ...Do work here

    terminals.Add terminal, key

  Loop Until endCondition

  Set LoadTerminals = terminals

End Function

只要你有变量,就不需要特别地“处置”它们(我猜你的意思是将Nothing赋值给持有对它们的引用的变量。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1751258

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档