您是否需要处理对象并将其设置为null,还是当垃圾回收器超出范围时将其清理?
当不再使用对象以及垃圾收集器认为合适时,它们将被清除。有时,您可能需要将对象设置null为使其超出范围(例如,不再需要其值的静态字段),但是总体上通常不需要将其设置为null。
null
关于处理对象,我同意@Andre。如果对象是IDisposable是 一个好主意,处理它 ,当你不再需要它,尤其是如果对象使用非托管资源。不处理非托管资源将 导致内存泄漏 。
IDisposable
using一旦程序离开using语句的范围,就可以使用该语句自动处置对象。
using
using (MyIDisposableObject obj = new MyIDisposableObject()) { // use the object here } // the object is disposed here
在功能上等效于:
MyIDisposableObject obj; try { obj = new MyIDisposableObject(); } finally { if (obj != null) { ((IDisposable)obj).Dispose(); } }