Rechercher
 

Améliorations / Corrections

Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.

Emplacement :

Description des améliorations :

Utilisation de l'instruction using

L'instruction using permet de travailler sur un type de données (une classe) implémentant l'interface IDisposable. Si ce n'est pas le cas, une erreur de compilation sera produite. Par contre, si le type est bien compatible avec IDisposable, alors l'instruction using garantira que la méthode Dispose (définie dans l'interface) sera automatiquement invoquée en fin de bloc. Même en cas de déclenchement d'exception ou d'utilisation du mot clé return, l'appel est garanti.

Exemple de code

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
 19 
 20 
 21 
 22 
 23 
 24 
 25 
 26 
 27 
 28 
 29 
 30 
 31 
 32 
 33 
 34 
 35 
 36 
using System;

namespace TestIDisposable
{
    class Demo : IDisposable
    {
        public Demo() 
        {
            Console.WriteLine("Resource created");
        }
    
        public void Dispose()
        {
            Console.WriteLine("Resource released");
        }

        public void DoSomething()
        {
            Console.WriteLine("Do Something");
        }
    }

    class Program
    {
        static void Main(string[] args) 
        {
            using (Demo d = new Demo())
            {
                d.DoSomething();
                // Essayez ces lignes : la méthode Dispose sera malgré tout invoquée
                //throw new Exception("ouille");
                //return;
            }
        }
    }
}
Utilisation de l'instruction using

Et voici les résultats produits par ce programme.

Resource created
Do Something
Resource released