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

示例

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

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();
        }
        //清理父母的资源
        base.Dispose();
    }
}