Euh, globalement je préfères oublier l'astuce (et donc ne pas l'utiliser), que d'oublier de fermer mon fichier hein :)
De plus une écriture "naïve" aurait pu conduire à faire :
FileWriter fileWriter = new FileWriter("toto.log");
//somework
fileWriter.Close();
Et si une erreur survient pendant l'utilisation du fichier ? (genre erreur d'entrée/sortie)
L'avantage de cette syntaxe, c'est qu'elle t'assure que ton fichier soit fermé, même si une exception est levée au milieu du using.
Tu trouves ca plus élégant d'écrire :
FileWriter fileWriter = new FileWriter("toto.log");
try{
// some work
}
finally
{
fileWriter.Close();
}
Non franchement c'est pas plus joli, le using est bien plus simple à comprendre.
Je suppose que tu as le même avis sur la boucle foreach et yield ?
Je suppose que tu n'aimes pas non plus le garbage collector qui nettoie la mémoire par magie ? D'ailleur tu n'aimes pas non plus le C++ car il appelle automatiquement le destructeur d'une variable déclarée localement ? (ce qui correspond grosso-modo au using ici)
[^] # Re: Quelques commentaires
Posté par TImaniac (site web personnel) . En réponse au journal Python 2.5 beta 2. Évalué à 4.
De plus une écriture "naïve" aurait pu conduire à faire :
FileWriter fileWriter = new FileWriter("toto.log");
//somework
fileWriter.Close();
Et si une erreur survient pendant l'utilisation du fichier ? (genre erreur d'entrée/sortie)
L'avantage de cette syntaxe, c'est qu'elle t'assure que ton fichier soit fermé, même si une exception est levée au milieu du using.
Tu trouves ca plus élégant d'écrire :
FileWriter fileWriter = new FileWriter("toto.log");
try{
// some work
}
finally
{
fileWriter.Close();
}
Non franchement c'est pas plus joli, le using est bien plus simple à comprendre.
Je suppose que tu as le même avis sur la boucle foreach et yield ?
Je suppose que tu n'aimes pas non plus le garbage collector qui nettoie la mémoire par magie ? D'ailleur tu n'aimes pas non plus le C++ car il appelle automatiquement le destructeur d'une variable déclarée localement ? (ce qui correspond grosso-modo au using ici)