vb6创建一个对象两次,是否会导致内存泄漏?

vb6创建一个对象两次,是否会导致内存泄漏?,vb6,Vb6,我只想检查我是否在vb6中编写了以下代码: dim a as new b dim a as new b 它是否会导致内存泄漏?否,这不会导致内存泄漏 您还可以将此代码放入10000次迭代的循环中,并在任务管理器中查看内存。否,这不会导致内存泄漏 您还可以将此代码放入10000次迭代的循环中,并在任务管理器中查看内存。由于您定义了一个循环,因此该代码甚至无法编译 但是,在此示例中: Dim A As B Set A = New B Set A = New B 在第三行之后,存储在第二行A中的B

我只想检查我是否在vb6中编写了以下代码:

dim a as new b
dim a as new b

它是否会导致内存泄漏?

否,这不会导致内存泄漏


您还可以将此代码放入10000次迭代的循环中,并在任务管理器中查看内存。

否,这不会导致内存泄漏


您还可以将此代码放入10000次迭代的循环中,并在任务管理器中查看内存。

由于您定义了一个循环,因此该代码甚至无法编译

但是,在此示例中:

Dim A As B
Set A = New B
Set A = New B

在第三行之后,存储在第二行A中的B的第一个实例将被销毁。

该代码甚至不会编译,因为您定义了两次A

但是,在此示例中:

Dim A As B
Set A = New B
Set A = New B

在第三行之后,存储在第二行A中的B的第一个实例将被销毁。

请注意,除非您了解其副作用,否则将
用作新的
通常是一个糟糕的主意。请注意,除非您了解其副作用,否则将
用作新的
通常是一个糟糕的主意。A不会被销毁,因为它永远不会被实例化。当您调用方法或属性,或将变量传递到参数时,声明为“新”的变量被实例化为“及时”。@MarkBertenshaw,尽管我完全相信您(因为由于后期绑定问题,我从未使用过该语法),你有这样的测试用例、证据或文档吗?@PhoenixX_2我使用官方文档已经很久了!但是您可以通过在下面的c中添加一个手表来测试这一点-注意,它永远不会显示为“Nothing”:Dim c as New Collection:Debug.Print c.Count:Set c=Nothing:Debug.Print TypeName(c)a不会被销毁,因为它永远不会被实例化。当您调用方法或属性,或将变量传递到参数时,声明为“新”的变量被实例化为“及时”。@MarkBertenshaw,尽管我完全相信您(因为由于后期绑定问题,我从未使用过该语法),你有这样的测试用例、证据或文档吗?@PhoenixX_2我使用官方文档已经很久了!但是您可以通过在下面的c中添加一个手表来测试这一点-注意,它永远不会显示为“Nothing”:Dim c作为新集合:Debug.Print c.Count:Set c=Nothing:Debug.Print TypeName(c)