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.
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; } } } } |
Et voici les résultats produits par ce programme.
Resource created Do Something Resource released
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 :