Utilisation spéciale de using [Résolu]

Signaler
Messages postés
47
Date d'inscription
lundi 21 juillet 2008
Statut
Webmaster
Dernière intervention
2 octobre 2008
-
Messages postés
47
Date d'inscription
lundi 21 juillet 2008
Statut
Webmaster
Dernière intervention
2 octobre 2008
-
Salut,
quelqu'un peut il m'expliquer cette utilisation de using que j'ai trouvé dans un bouquin ?
Merci !
     using (StreamWriter sw = new StreamWriter(strPath +
                                               strAutomation +
                                               "\" +
                                               strAutomation +
strExt))

     {
                sw.Write(strAutoContent) ;
}

-------------------------------------------------------------------
Diaboliser quelqu'un ne lui fait pas pousser les cornes et la queue...

5 réponses

Messages postés
721
Date d'inscription
dimanche 10 juin 2001
Statut
Membre
Dernière intervention
27 mars 2011
4
ca définit la portée de ton objet. Juste aprés le using, il est détruit. Ca permet de garder l'allocation mémoire "propre"
Messages postés
1024
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
7 juin 2010
62
Tu y es presque WishhhMaster, il faut juste rajouter un bloc try/finally :

  StreamWriter sw=null;
  try
  {
     sw = new StreamWriter(strPath +
                           strAutomation +
                           "\" +
                           strAutomation +
                           strExt);

    sw.Write(strAutoContent);
  }
  finally
  {
    if (sw!= null)
       sw.Dispose();//libère les ressources utilisées par le stream writer
  }

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)
Messages postés
327
Date d'inscription
mardi 17 février 2004
Statut
Membre
Dernière intervention
10 avril 2010
7
Salut,

Avec cette syntaxe, les ressources sont libérées quand le bloc se termine.

Dans ton exemple, c'est équivalent à faire

StreamWriter sw = new StreamWriter(strPath +
                                               strAutomation +
                                               "\" +
                                               strAutomation +
strExt);

sw.Write(strAutoContent) ;

sw.Dispose();//libère les ressources utilisées par le stream writer
Messages postés
327
Date d'inscription
mardi 17 février 2004
Statut
Membre
Dernière intervention
10 avril 2010
7
Autant pour moi =)
Messages postés
47
Date d'inscription
lundi 21 juillet 2008
Statut
Webmaster
Dernière intervention
2 octobre 2008

Et bien merci à tous les 3 :)

Diaboliser quelqu'un ne lui fait pas pousser les cornes et la queue...