Des Classes d' Stream
, StreamReader
, StreamWriter
etc implémente IDispose
interface. Cela signifie que nous pouvons appeler, Dispose()
méthode sur des objets de ces classes. Ils ont également défini un public
méthode de Close()
. Maintenant que me confond, à quoi dois-je appeler une fois que je suis fait avec des objets? Que faire si je appeler?
Mon code actuel est:est-ce
using (Stream responseStream = response.GetResponseStream())
{
using (StreamReader reader = new StreamReader(responseStream))
{
using (StreamWriter writer = new StreamWriter(filename))
{
int chunkSize = 1024;
while (!reader.EndOfStream)
{
char[] buffer = new char[chunkSize];
int count = reader.Read(buffer, 0, chunkSize);
if (count != 0)
{
writer.Write(buffer, 0, count);
}
}
writer.Close();
}
reader.Close();
}
}
Comme vous le voyez, j'ai écrit using()
des constructions, qui appelle automatiquement Dispose()
méthode sur chaque objet. Mais j'ai aussi appel Close()
méthodes. Est-il juste?
Merci de me suggérer les meilleures pratiques lors de l'utilisation d'objets de flux. :-)
MSDN exemple ne pas utiliser using()
des constructions, et appelez - Close()
méthode:
Est-il bon?