gpt4 book ai didi

c# - 应该在没有终结器的对象上调用 GC.SuppressFinalize 吗?

转载 作者:可可西里 更新时间:2023-11-01 08:02:03 27 4
gpt4 key购买 nike

出于某种原因FXCop seems to think我应该在 Dispose 中调用 GC.SuppressFinalize,无论我是否有终结器。

我错过了什么吗?是否有理由在没有定义终结器的对象上调用 GC.SuppressFinalize?

最佳答案

没有必要在 Dispose 中调用 GC.SuppressFinalize(this),除非:

  • 您是实现用于重写的虚拟 Dispose 方法的基类(同样,即使在这里,这也可能不是您的责任,但在那种情况下您可能想要这样做)
  • 你自己有一个终结器。从技术上讲,.NET 中的每个类都有一个终结器,但如果唯一存在的终结器是 Object 中的终结器,则该对象不被认为需要终结,并且不会在 GC 时放在终结列表中

我会说,假设您没有上述任何情况,您可以安全地忽略该消息。

关于c# - 应该在没有终结器的对象上调用 GC.SuppressFinalize 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/621152/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com