C# Language Dans une classe héritée avec des ressources gérées


Exemple

Il est assez courant de créer une classe qui implémente IDisposable , puis de dériver des classes contenant également des ressources gérées. Il est recommandé de marquer la méthode Dispose avec le mot clé virtual afin que les clients puissent nettoyer toutes les ressources dont ils sont propriétaires.

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();
    }
}