有两个类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/