在VB6应用程序中,我有一个Dictionary,其键是String,值是自定义类的实例。如果我在RemoveAll()上调用Dictionary,它将首先释放自定义对象吗?还是我自己明确需要这样做?

Dim d as Scripting.Dictionary

d("a") = New clsCustom
d("b") = New clsCustom

' Are these two lines necessary?
Set d("a") = Nothing
Set d("b") = Nothing

d.RemoveAll

最佳答案

是的,在调用Dictionary之后,将释放RemoveAll()中的所有对象。从性能(从速度)的角度来看,我会说那些将变量设置为Nothing的行是不必要的,因为代码必须首先根据键名查找它们,而RemoveAll()将枚举并在一个循环中释放所有内容。

关于vb6 - Scripting.Dictionary的RemoveAll()方法是否首先释放其所有元素?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/75011/

10-11 09:20