Welcome there !
Emmanuel Desigaud's blog. Personnal, professional. Fun pictures, kewl web links, usefull software ....De l'utilisation de Using
Le mot clé "Using", tout le monde est familier avec. Il suffit de créer n''importe (ou presque) quel objet .Net pour que les premières lignes soient remplies par ces déclarations. Dans cet article, nous allons découvrir les différentes possibilités d''utilisation offertes par ce mot clé.
1/ La déclaration d''espace de nom
L''utilisation la plus commune du mot clé "Using" est la déclaration des espaces de nom. Ainsi, les types d''un espace de nom déclaré par un "Using" pourront être invoqués sans les préfixer du nom complet de l''espace. Par exemple, sans vous en rendre compte, lors d''un appel à String, vous référencez la classe System.String, cela étant dû à l''inclusion de l''espace System.
1using System; 2 3namespace Demo 4{ 5 public class Demo 6 { 7 public String test; //appel à System.String 8 } 9}
2/ La définition de synonymes
Toujours à l''aide la directive "Using", nous allons pouvoir définir des synonymes dans le but de simplifier / clarifier l''inclusion de certains espaces de nom. Il suffit alors de déclarer l''import comme suit :
|
using variable = Espace de Nom; |
Un exemple concret qui a fait le tour des différents blogs :
1using System;
2using settings = System.Configuration.ConfigurationSettings;
3
4public class Demo
5{
6
7 public Demo()
8 {
9 String conString = settings.AppSettings["ConnexionString"];
10 //....
Le but est de simplifier l''appel à la propriété statique AppSettings de la classe System.Configuration.ConfigurationSettings qui est un peu longue à écrire (qui se soucie aujourd''hui d''écrire son code en 80 colonnes ?)
3/ La déclaration de variable locale.
On peut également utiliser le mot clé "using" pour déclarer certaines variables locales. L''intérêt d''une telle utilisation est qu''à la fin de la section qui déclare le using, la variable est automatiquement nettoyée par l''appel à sa méthode Dispose. La seule contrainte (majeur) est que l''objet doit définir l''interface IDisposable.
Pour résumer :
using (Type variable = initialisation) { //Traitement }Un exemple concret d''utilisation :
est équivalent à :
{ Type variable = initialisation; try { //Traitement } finally { if (variable != null) { ((IDisposable)variable).Dispose(); } } } // fin de la section
1using System;
2
3public class Demo : IDisposable
4{
5
6 public Demo()
7 {
8 Console.WriteLine("Hello");
9 }
10
11 public void Dispose()
12 {
13 Console.WriteLine("Disposing the object");
14 }
15
16 [STAThread]
17 static void Main(string[] args)
18 {
19 using (Demo d = new Demo())
20 {
21 }
22
23 Console.ReadLine();
24 }
25}
26
retourne dans la console :
| Hello Disposing the object |