在方法结束之前,我是否需要在 C# 中清空对象引用?
Do I need to null out an object reference in C# before the method ends?
我是 C# 的新手,似乎找不到对此的直接答案:
所以在一个方法中,我创建了一个对象引用来读取 xml 文档:
XElement xFinancialBill = xDoc.Root.Element("Financial_Transaction").Element("Bill");
它对对象做了一些处理,方法结束了,但我的问题是:我是否需要在方法结束之前将上面的对象引用(例如xFinancialBill = null;
)清空[=18] =] 调高内存才能正常工作?
没有。垃圾收集器将释放所有不再可访问的对象,并且已完成的方法的局部变量属于此类(前提是您没有其他引用,例如因为您返回了值或将其存储在成员字段等中
通常,一旦对象引用超出范围,您就无需担心它们 - 垃圾收集器会清理干净。
但是,如果您使用的对象 class 实现了 IDisposable
接口,那么您需要确保它通过显式调用 IDisposable.Dispose()
来处理任何非托管资源方法或将其用法包装在 using
块中。
在 MSDN 中查找 IDisposable
以获得进一步的解释。
我是 C# 的新手,似乎找不到对此的直接答案:
所以在一个方法中,我创建了一个对象引用来读取 xml 文档:
XElement xFinancialBill = xDoc.Root.Element("Financial_Transaction").Element("Bill");
它对对象做了一些处理,方法结束了,但我的问题是:我是否需要在方法结束之前将上面的对象引用(例如xFinancialBill = null;
)清空[=18] =] 调高内存才能正常工作?
没有。垃圾收集器将释放所有不再可访问的对象,并且已完成的方法的局部变量属于此类(前提是您没有其他引用,例如因为您返回了值或将其存储在成员字段等中
通常,一旦对象引用超出范围,您就无需担心它们 - 垃圾收集器会清理干净。
但是,如果您使用的对象 class 实现了 IDisposable
接口,那么您需要确保它通过显式调用 IDisposable.Dispose()
来处理任何非托管资源方法或将其用法包装在 using
块中。
在 MSDN 中查找 IDisposable
以获得进一步的解释。