背景:
我刚遇到this question,让我了解了数组中的erase陈述。
我一直使用以下重置它们:
Sub TestWithRedimOnly()
Dim ExampleArray() As String
ReDim Preserve ExampleArray(1)
ExampleArray(1) = "yo"
MsgBox ExampleArray(1)
ReDim ExampleArray(0) As String
MsgBox ExampleArray(1) 'this confirms is reset!
End Sub
如果我擦除
Sub TestWithEraseAndRedim()
Dim ExampleArray() As String
ReDim Preserve ExampleArray(1)
ExampleArray(1) = "yo"
MsgBox ExampleArray(1)
Erase ExampleArray
MsgBox ExampleArray(1) 'this confirms is reset!
ReDim ExampleArray(0) As String
MsgBox ExampleArray(1) 'this confirms is reset!
End Sub
最后,两个都重置变量。
题:
使用擦除语句真的值得吗?它是否比
Redim.. As..
更好地防止内存泄漏?是否有任何您可以回想起不这样做的情况? 最佳答案
如有疑问,请使用以下语义:
使用ReDim
重新定义数组的维数
使用Erase
取消分配数组
坚持这一点将使您的代码受益于更高的一致性,并使您的代码意图对读者/维护者/未来用户更加清晰。