【问题标题】:Any Risk in Using Static Method in IDisposable?在 IDisposable 中使用静态方法有什么风险吗?
【发布时间】:2013-09-24 15:01:41
【问题描述】:

我有一个实现 IDisposable 的类,我想将一些方法设为静态。这样做会对内存管理或其他任何事情产生负面影响吗?

【问题讨论】:

    标签: .net c#-4.0 memory-management static-methods idisposable


    【解决方案1】:

    在那里调用静态方法应该没有任何风险。不过,我很好奇,为什么你会想要。 IDisposable 应该处理清理给定实例使用的本机资源。静态方法不适用于对象的任何特定实例(除非您将其作为参数传递)。似乎您调用的任何方法都作为实例方法而不是静态方法更好。

    【讨论】:

    • 该方法是从xml映射到.net类型。我需要将其设为静态,因为类的构造函数并不总是成功地执行 app.config 设置,具体取决于应用程序的部署位置。构造函数实例化存储库,但静态方法中不需要存储库。
    • 这允许我对不依赖于存储库的方法进行单元测试。
    【解决方案2】:

    不,因为类上的静态方法是not involved in memory management。正如静态所暗示的,该方法与类的任何给定实例无关,而是该方法与整个类相关。

    【讨论】:

      猜你喜欢
      • 2010-11-24
      • 1970-01-01
      • 2017-03-09
      • 1970-01-01
      • 2011-01-27
      • 1970-01-01
      • 1970-01-01
      • 2021-04-10
      • 2013-05-10
      相关资源
      最近更新 更多