在具有托管资源的继承类中

你可以创建一个实现 IDisposable 的类,然后派生也包含托管资源的类,这是很常见的。建议使用 virtual 关键字标记 Dispose 方法,以便客户能够清除他们可能拥有的任何资源。

public class Parent : IDisposable
{
    private ManagedResource parentManagedResource = new ManagedResource();

    public virtual void Dispose()
    {
        if (parentManagedResource != null)
        {
            parentManagedResource.Dispose();
        }
    }
}

public class Child : Parent
{
    private ManagedResource childManagedResource = new ManagedResource();

    public override void Dispose()
    {
        if (childManagedResource != null)
        {
            childManagedResource.Dispose();
        }
        //clean up the parent's resources
        base.Dispose();
    }
}