在具有託管資源的繼承類中

你可以建立一個實現 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();
    }
}