SORU
14 Ocak 2014, Salı


&; Kullanarak " " birden fazla kaynak ile kaynak sızıntısına neden?

C# bana aşağıdakileri sağlar (MSDN örnek):

using (Font font3 = new Font("Arial", 10.0f),
            font4 = new Font("Arial", 10.0f))
{
    // Use font3 and font4.
}

font4 = new Font oluşturursa ne olur? Anladığım kadarıyla font3 kaynaklar sızdırır ve bertaraf olmayacak.

  • Bu doğru mu? (font4 bertaraf olmayacak)
  • Bu using(... , ...) tamamen kullanarak iç içe lehine kaçınılmalıdır anlamına mı geliyor?

CEVAP
14 Ocak 2014, Salı


Hayır.

Derleyici her bir değişken için finally ayrı bir blok oluşturur.

spec (§8.13) diyor ki:

Kaynak toplama bir halini alır yerel-değişken Deklarasyonu, mümkün birden fazla elde etmek belirli bir türün kaynakları. Formu using bir deyim

using (ResourceType r1 = e1, r2 = e2, ..., rN = eN) statement 

tam da budur iç içe kullanarak ifadeler eşdeğerdir:

using (ResourceType r1 = e1)
   using (ResourceType r2 = e2)
      ...
         using (ResourceType rN = eN)
            statement

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 3dmmfavs

    3dmmfavs

    29 Kasım 2009
  • Muse

    Muse

    28 EYLÜL 2006
  • TheTwistedFrequency

    TheTwistedFr

    26 NİSAN 2010