SORU
30 HAZİRAN 2009, Salı


Atılması streamreader akışı kapanır?

Yazmak için yöntemler için bir akış gönderiyorum ve bu yöntemleri ikili okuyucu/wrtier kullanıyorum. Okuyucu/yazar, ya da using tarafından veya sadece referans değil elden alır, akışı da kapalı mı??

Şimdi/Yazar gönderirdim, ama çok bir StreamReader kullanıyorum (belki etrafında gitmeliyim. Sadece GetLine ve Seçeneği) için kullanıyorum. Bu akış her zaman bir yazar kapanırsa oldukça zahmetli/okuyucu kapalı alır.

CEVAP
30 HAZİRAN 2009, Salı


Evet, StreamReader, StreamWriter, BinaryReader ve BinaryWriter yakın Dispose çağırdığınızda kendi temel akarsu onları bertaraf edin/. Onlaryokeğer okuyucu/yazıcı sadece çöp olsa tahsil edilirse akışı atın - her zaman okuyucu/yazıcı, tercihen using ifadesi ile atmanız gerekir. (Aslında, bu sınıfların hiçbiri ne olmalıdır sonlandırıcı var.)

Şahsen akışı için kullanan bir deyim olarak tercih ederim. Diş teli olmadan using açıklamaları oldukça düzgün bir şekilde yerleştirebilirsiniz:

using (Stream stream = ...)
using (StreamReader reader = new StreamReader(stream, Encoding.Whatever))
{
}

Olsa bile using deyimi için akış biraz gereksiz (sürece StreamReader yapıcı bir istisna atar) düşünün bu en iyi uygulama olarak da varsa o zaman kurtulmak StreamReader ve akımı doğrudan bir sonraki tarih olacak var zaten bertaraf anlambilim.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 8lacKy

    8lacKy

    30 Mart 2009
  • emimusic

    emimusic

    10 Mart 2006
  • New Scientist

    New Scientis

    27 Kasım 2006