在具有托管资源的继承类中
你可以创建一个实现 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();
}
}