c# - 在扩展类的情况下如何处理非托管资源?

标签 c# .net

有两个类ClassA和ClassB。 B 类扩展了 A 类。 ClassA 和 ClassB 中都有非托管资源。 所以问题是:应该为这两个类提供 Dispose() 方法还是为 ClassA 提供 Dispose 就足够了

编辑1: 根据到目前为止我得到的回应,我认为我的陈述被误解为 ClassB 继承自 ClassA。访问以下链接可以理解我的意思:

最佳答案

您必须从子对象中调用基础Dispose。在 B 类中实现 Dispose 将覆盖继承的方法。这是因为在 C# 中方法默认是虚拟的(如果在子类中重新实现,将调用重新实现)。

// Class B

public void Dispose()
{
    base.Dispose();

    // Dispose the rest (unmanaged B)
}

关于c# - 在扩展类的情况下如何处理非托管资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22273290/

相关文章:

javascript - 退出时发送电子邮件

c# - 从脚本中清除编辑器控制台日志

c# - 如何使用 payflow pro API 从存储的信用卡中扣款?

c# - 是否有将单个项目添加到 IEnumerable<T> 的 Linq 方法?

c# - 使用 foreach 循环检索 GroupBox 中的 TextBox

c# - 如何向 PropertyGrid 的 CollectionEditor 添加验证?

c# - Fluent Nhibernate 保存子实体

c# - 在自定义应用程序中托管 MS Office 文档的更好选择?

javascript - 为什么 SignalR 在收到所有更新之前发送调用的回调

C# 应用程序 : how to view the loaded assemblies