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

  • Elliot Davin

    Elliot Davin

    28 Kasım 2008
  • How to Cook ?

    How to Cook

    31 Ocak 2007
  • inovationgmbh

    inovationgmb

    28 EYLÜL 2010