Dispose Finalize and Destructors
本文关键字:Destructors and Finalize Dispose | 更新日期: 2023-09-27 18:19:31
可能重复:
最终确定与处置
Dispose-这将释放对象内存,在这种情况下应支持GC。
Finalize-如果对象没有被释放,并且当对象超出范围时(我的意思是当类超出范围时),GC会说Finalize来清理它。
析构函数-不知道。你能解释一下b/w析构函数和finalize的区别吗?
Dispose无法释放内存。Dispose()
方法释放或关闭非托管资源。
完成
垃圾回收器隐式地使用它来释放空间。
析构函数
它用于破坏变量的值。
析构函数隐式调用finalize,所以它有点像预finalize。
有关详细信息,请参阅MSDN。该文档中的一个重要花絮:
即使有这种对资源的显式控制,如果对Dispose方法的调用失败,析构函数也会成为清理资源的保障。
描述符在c++中,终结器在.NET中。尽管你在c#代码中表示终结器的方式看起来像c++解构造器,但它不一样,它的行为也不同。
终结是.NET内存管理中发生的最后一个过程。处置是清理非托管内存的模式。请记住,Dispose是手动执行的操作,或者显式地称为base,而finalizer不是。它在运行时是自动的。
您可能希望阅读此