Gibi sınıfları Stream, StreamReader, StreamWritervb uygular IDisposablearayüz. Bu Dispose(), bu sınıfların nesneleri üzerinde yöntem çağırabileceğimiz anlamına gelir . Ayrıca publicadında bir yöntem de tanımladılar Close(). Şimdi, nesnelerle işim bittiğinde ne aramalıyım diye kafamı karıştırıyor? Ya ikisini de ararsam?
Mevcut kodum şu:
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();
}
}
Gördüğünüz gibi , her nesnede using()otomatik olarak Dispose()yöntemi çağıran yapılar yazdım . Ama aynı zamanda Close()yöntemleri de çağırıyorum . Doğru mu?
Lütfen akış nesnelerini kullanırken bana en iyi uygulamaları önerin. :-)
MSDN örneği, using()yapıları ve çağrı Close()yöntemini kullanmaz:
İyi mi?