假设我在我的方法中创建了一个大的Dictionery
或List
对象,所以此时保存此列表的varible
中包含很多项,因此需要大量的内容记忆所以现在在我的方法中间的某个地方我完成了这个变量并且不再需要它了但是我仍然在我的方法中做其他事情所以我不喜欢很快超出方法的范围以便节省一些内存,如果我将该变量设置为null
,这会节省内存吗?
答案 0 :(得分:4)
本地变量在上次使用后有资格进行垃圾回收。范围与符合垃圾收集条件无关,将其设置为null
将无效。
因此,下一个代码段中的变量input
和result
可能会占用相同的内存,因为它们的生命周期不会重叠。
void Method(string input)
{
string result = Process(input);
Console.WriteLine(result);
}
阅读Eric Lippert的Construction Destruction和Raymond Chen的When does an object become available for garbage collection?