您是否需要处理对象并将它们设置为 null,或者垃圾收集器是否会在它们超出范围时清理它们?
最佳答案
当对象不再被使用并且垃圾收集器认为合适时,它们将被清理。有时,您可能需要将对象设置为 null
以使其超出范围(例如不再需要其值的静态字段),但总的来说通常不需要设置为 null
。
关于处置对象,我同意@Andre。如果对象是IDisposable
,那么当您不再需要它时处理它是个好主意,尤其是当对象使用非托管资源时。不处理非托管资源将导致内存泄漏。
您可以使用 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();
}
}
关于c# - 您是否需要处理对象并将它们设置为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2926869/