VB6/VBA 中对象清除/数组释放真的有必要吗(优点/缺点?)[重复]

2024-06-20

我从使用静态代码分析(特别是 Aivosto 的项目分析器)中学到了很多关于 VB 的知识。它检查的一件事是您是否清除了所有对象和数组。我以前只是盲目地这样做,因为PA这么说。但现在我对 VB 释放资源的方式有了更多的了解,在我看来,这些事情应该是自动发生的。这是 VB6 之前的遗留功能吗?或者是否有理由将对象显式设置为空并在数组上使用 Erase?


马特·科兰,作者高级 Visual Basic 6 https://rads.stackoverflow.com/amzn/click/com/0201707128,他对 Visual Basic 的了解比我们大多数人都多,他认为这是浪费精力。考虑以下关于 DAO 的引用 (p110),DAO 是主要针对 Access 数据库引擎的 COM 数据访问库:

糟糕的拆卸代码的另一个例子。 DAO 有 Close 方法,必须是 以正确的顺序调用,并且 对象必须在 顺序也正确(记录集 例如,在数据库之前)。这 单个不良对象模型行为有 导致了VB泄漏的误解 内存,除非你明确设置所有 局部变量为空 函数结束。这是一个 完全错误的观念 精心设计的对象模型。 VB可以 最后更快地清除变量 子行比您可以从代码中得到的行多,并且 它会检查变量,即使你 明确公开你的推荐人。 你所做的任何努力都会被重复。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VB6/VBA 中对象清除/数组释放真的有必要吗(优点/缺点?)[重复] 的相关文章

随机推荐

  • 如何在报表查看器中添加参数?

    嘿 我在 Visual Studio 2010 中有一个表单应用程序 我想使用报表查看器创建一个报表并添加一些参数 我尝试从代码中添加参数 但没有成功 我有这个错误 tablix Tablix1 的 FilterExpression 表达式
  • .showsPhysics 内存泄漏

    我最近花了 5 个小时尝试调试 Spritekit 应用程序中的内存泄漏 应用程序启动后 我注意到内存使用量略有上升 我花了 5 个小时中的 3 个小时挖掘参考资料 了解强与弱的关系ARC https developer apple com
  • 使用 javax.sound.midi 接收 MIDI 输入

    我想要一个程序 当它获得 MIDI 输入时可以做一些事情 例如 当我单击控制器上的按钮 1 时 它应该打印 您单击了 btn 1 当我单击按钮 2 时 它应该打印 您单击了 btn 2 我尝试使用 javax sound midi 库 但论
  • 如何在 64 位中构建 Boost 1.64?

    我运行的是 Windows 10 并在我的笔记本电脑上安装了 Visual Studio 2017 Community Edition 我有一些旧程序在 64 位 Boost 1 62 0 的 VS 2015 中编译得很好 由于一些非常奇怪
  • SWT 表:如何设置/获取“焦点”行

    On Windows and Linux when holding down the Ctrl key one can move up and down using the caret keys without changing the s
  • 使用 Spring AOP 记录方法条目[重复]

    这个问题在这里已经有答案了 任何人都知道如何在跟踪级别使用 Spring AOP 和 log4j 记录方法条目 包括参数值 并退出 它应该能够记录多个包中的类 您可以使用 大约 用于此类目的的方面 Component Aspect Orde
  • 图像处理以提高 tesseract OCR 准确性

    我一直在使用 tesseract 将文档转换为文本 文档的质量参差不齐 我正在寻找有关哪种图像处理可以改善结果的提示 我注意到高度像素化的文本 例如由传真机生成的文本 对于超正方体来说尤其难以处理 大概所有这些字符的锯齿状边缘都会混淆形状识
  • 不使用 BuildContext 预加载图像

    有没有办法在函数中加载 Flutter 中的图像而无需访问 BuildContext Flutter 可以预加载图像precacheImage 需要BuildContext 使用起来不方便 我想加载图像initState StatefulW
  • PhoneGap for Windows Phone - 文件扩展名“.js”没有脚本引擎

    我使用 Microsoft Visual Studio 创建了新项目 但出现编译错误 如下所示 文件扩展名 js 没有脚本引擎 命令 CScript c users raja documents visual studio 2010 Pro
  • 我应该对 ObjectContext 使用 using 关键字吗?

    我在这个网站或 CodeProject 的某个地方读到 好的规则是 如果某个类已经实现了 IDisposable 接口 那么您应该使用 using 关键字 因为使用翻译成 MSIL 的关键字会尝试 最终阻止如下内容 try some log
  • 使用 Libgdx 更新适用于 64 位设备的 Android 应用程序

    我在 Google Play 上有一些 Android 应用程序 我只需要根据谷歌最近提到的以下要求更新应用程序 即 所有应用程序都必须与 64 位兼容 https android developers googleblog com 201
  • 相对文件路径的区别:Qt Creator的调试模式和发布模式

    QFile file test txt if file open QIODevice ReadOnly qDebug lt lt You got me 我在用 Qt 4 8 6 与 MSVC 2010 Qt 创建者 3 1 1 Window
  • 函数模板在另一个类/命名空间中的专业化?

    注意 这个问题与tinyxml只是松散相关 但是包括这样的细节可能有助于更好地说明这个概念 我编写了一个函数模板 它将迭代父 XML 节点子节点 检索子元素的值 然后将该子元素值推送到向量 检索值 部分也写为函数模板 i e templat
  • 通过 JavaScript 检测浏览器换行

    我需要 javascript 来检测每个浏览器包装的文本行并将其包装到 span class line 我读过一些关于测量每个单词的 y 轴的文章 但还没有看到可靠的解决方案 这是我到目前为止所拥有的 看到它Jsfiddle http js
  • 寻找公共子集的算法

    I have N number of sets Si of Numbers each of a different size Let m1 m2 mn be the sizes of respective sets mi Si and M
  • SQL Server 连接其他表中不存在的位置

    Service Asset AssetService Id Name Id Name AssetId ServiceId
  • UITableView Separator 出现在 Cell 视图的中间

    我正在使用默认的 iOS 7 的 TableView Separator 我有不同高度的自定义单元格 当频繁地上下滚动时 一些较小的单元格会留下分隔符 也许不确定这是否是原因 因此 大多数情况下 较大的电池会被分离器从中间切割 我尝试将单元
  • C语言中使用POSIX使二进制信号量在多个进程(不是线程,仅限进程)之间共享

    我正在使用 C 语言中的 POSIX 使二进制信号量在多个进程 不是线程 仅进程 之间共享 如果我使用互斥体创建二进制信号量 typedef struct BIN SEMA pthread cond t cv cond variable u
  • 为什么java中LinkedList没有initialCapacity?

    我想知道为什么LinkedList没有initialCapacity 我知道什么时候使用ArrayList什么时候LinkedList 定义集合最终大小的好习惯是 List
  • VB6/VBA 中对象清除/数组释放真的有必要吗(优点/缺点?)[重复]

    这个问题在这里已经有答案了 我从使用静态代码分析 特别是 Aivosto 的项目分析器 中学到了很多关于 VB 的知识 它检查的一件事是您是否清除了所有对象和数组 我以前只是盲目地这样做 因为PA这么说 但现在我对 VB 释放资源的方式有了