在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/