我有一个类似下面的函数:
Public Function testFunction(ByVal input_string As String) As String
Dim s As New StringBuilder()
Dim c As Char
For i As Integer = 0 To input_string.Length - 1
c = input_string.Chars(i)
s.Append(c)
Next
Return s.ToString
End Function
但我想知道显式销毁任何对象是否更好,如下所示:
Public Function testFunction(ByVal input_string As String) As String
Dim s As New StringBuilder()
Dim c As Char
For i As Integer = 0 To input_string.Length - 1
c = input_string.Chars(i)
s.Append(c)
Next
Dim t As String = s.ToString
s = Nothing
Return t
End Function
还是让垃圾收集器为我们完成这项工作?
上述两个函数都有效,但我只想知道性能的最佳实践...
谢谢
最佳答案
设置 s = Nothing
是没有意义的,因为它在下一条指令处超出了范围,因此无论如何都可以在该点进行垃圾回收。
将变量设置为 null/nothing 并不意味着垃圾收集会在此时启动。
关于.net - 销毁所有对象还是让垃圾收集器完成工作更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4354469/