可能重复:
Finalize vs Dispose
Dispose - 这样可以释放对象内存,在这种情况下GC应该处于最佳状态。
Finalize - 如果没有丢弃对象,那么当对象超出范围时(我的意思是当课程超出范围时),GC会说Finalize来清理它。 / p>
析构函数 - 不知道。你能解释一下不同的b / w析构函数并最终确定吗?
答案 0 :(得分:2)
Dispose无法释放内存。 Dispose()
方法释放或关闭非托管资源。
答案 1 :(得分:1)
析构函数隐式调用finalize,因此它是一种预定义。
有关详细信息,请参阅MSDN。该文档中的一个重要信息:
即使对资源进行了这种显式控制,如果对Dispose方法的调用失败,析构函数也会成为清理资源的安全措施。
答案 2 :(得分:1)
Descrtuctor在c ++中,Finalizer在.NET中。尽管你在C#代码中代表终结器的方式看起来像C ++解析器,但它不一样,它的行为也不同。
最终化是.NET内存管理中发生的最后一个过程。处理是清理非托管内存的模式。请记住,Dispose是手动或明确地称为基础的操作,而终结器则不是。它是在运行时自动完成的。
您可能希望阅读this
答案 3 :(得分:1)
<强>的Finalize 强>
它隐式使用垃圾收集器来释放空间。
<强>析构强>
它用于销毁变量的值。