我发现许多文章和表格定义了b / w最终确定和处理方法的差异,但现在我仍有一个疑问。 怀疑:我们知道在运行时类的析构函数转换为finalize方法。如果我们没有在Class中定义析构函数会发生什么。我的意思是,到现在为止,析构函数将转换为finalize与否? 。内存管理将如何执行。
答案 0 :(得分:1)
在实现Dispose
的类上存在IDisposable
方法(我猜你可能有一个没有接口的方法,但它没那么有用)。在这种方法中,您应该清理所有未管理的资源。它还:
using
块,以便框架为您调用Dispose
。Dispose
。 终结器(碰巧看起来像C ++析构函数)被垃圾收集器调用......最终。鉴于在调用它时你没有控制权,你应该非常小心依赖它们。没有一个根本没有问题(绝大多数,几乎所有的课程都不需要它们)。此外,如果您实现IDisposable
,肯定不需要一个,因为在终结器运行之前,应该已经释放了非托管资源(并且GC.SuppressFinalize
已调用)。