2009-10-28 28 views

回答

4

您可以随时将其设置为Nothing这将清除参考。然后当垃圾收集器发现这是一个好主意时,它会照顾其余的人。

split = Nothing 

但是,如果这是你通常不必担心这个方法的局部变量,数组会尽快它超出范围可进行垃圾回收。

+0

为什么你的方法比下面的方法更好?你只是说分裂=什么都没有? –

+0

我会假设'Array.Clear'后,split将仍然保存对(现在已清除)数组的引用。在我的示例中,它不会引用任何内容。我想说的是,在大多数正常情况下,这种差别不会很明显(我认为split是在方法完成时超出范围的方法中的局部变量)。 –

+1

+1“不需要担心这个”除非数组本身是一个全局变量,否则没有充分的理由将其设置为Nothing,这不太可能。 –

8
ReDim split(-1) 
+0

为什么你的方法比下面的两个更好 –

+1

三种方法中的不同: redim split(-1) 这使得数组成为一个字符串数组,其元素为零。 Array.Clear(split,0,split.Length) 这使得数组的所有元素都被赋值为无。 split = nothing 此叶子分配了无值的值。 哪个更好?这取决于,但有时它会有所作为。例如,如果您以后使用ubound来查找split的上限,那么您将得到0,3或这三种情况的错误。 – xpda

5

不需要做任何事情。垃圾收集器将完成它的作业清除变量。明确地将每个变量设置为“无”会减慢应用程序的速度。

+0

这是迄今为止唯一正确的答案。 –