Gibi sınıfları Stream
, StreamReader
, StreamWriter
vb uygular IDisposable
arayüz. Bu Dispose()
, bu sınıfların nesneleri üzerinde yöntem çağırabileceğimiz anlamına gelir . Ayrıca public
adı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?