的全部内容,我有这样的:vb.net:清除字符串数组
Dim split As String() = temp_string.Split(",")
''#feed all info into global variables
patient_id = split(0)
doc_name = split(1)
lot__no = split(2)
patient_name = split(3)
如何清除分裂的所有内容()?
的全部内容,我有这样的:vb.net:清除字符串数组
Dim split As String() = temp_string.Split(",")
''#feed all info into global variables
patient_id = split(0)
doc_name = split(1)
lot__no = split(2)
patient_name = split(3)
如何清除分裂的所有内容()?
Array.Clear(split, 0, split.Length)
您可以随时将其设置为Nothing
这将清除参考。然后当垃圾收集器发现这是一个好主意时,它会照顾其余的人。
split = Nothing
但是,如果这是你通常不必担心这个方法的局部变量,数组会尽快它超出范围可进行垃圾回收。
ReDim split(-1)
为什么你的方法比下面的两个更好 –
三种方法中的不同: redim split(-1) 这使得数组成为一个字符串数组,其元素为零。 Array.Clear(split,0,split.Length) 这使得数组的所有元素都被赋值为无。 split = nothing 此叶子分配了无值的值。 哪个更好?这取决于,但有时它会有所作为。例如,如果您以后使用ubound来查找split的上限,那么您将得到0,3或这三种情况的错误。 – xpda
不需要做任何事情。垃圾收集器将完成它的作业清除变量。明确地将每个变量设置为“无”会减慢应用程序的速度。
这是迄今为止唯一正确的答案。 –
为什么你的方法比下面的方法更好?你只是说分裂=什么都没有? –
我会假设'Array.Clear'后,split将仍然保存对(现在已清除)数组的引用。在我的示例中,它不会引用任何内容。我想说的是,在大多数正常情况下,这种差别不会很明显(我认为split是在方法完成时超出范围的方法中的局部变量)。 –
+1“不需要担心这个”除非数组本身是一个全局变量,否则没有充分的理由将其设置为Nothing,这不太可能。 –