首页 > 解决方案 > 如果类中没有 Finalizer,GC.SuppressFinalize 是否没用?

问题描述

在 Class 中使用 Dispose 模式时,我看到没有 Finalizer 存在,但 Dispose 方法中仍在使用 GC.SuppressFinalize() 。

这个调用是无用的还是类中运行时隐式提供了终结器?

标签: c#

解决方案


您看到的是哪种 Dispose 模式?一个用于sealed类还是一个用于为继承而设计的类?

对于后者,没有真正的方法可以知道派生类是否会有终结器,因此实现的基类Dispose仍然应该调用SuppressFinalize.


推荐阅读