SORU
5 EYLÜL 2008, Cuma


Çöp Toplayıcı çağrı IDisposable.Benim için hazırlıyor mu?

.NET IDisposable Patternanlamına gelireğer bir sonlandırıcı yazarsanız, ve sonlandırıcı açıkça çağrı Atmanız gereken IDisposable uygulamak. Bu mantıklı, ve her zaman bir sonlandırıcı garanti olduğu ender durumlarda yaptığım şey.

Ancak, bunu yaparsam ne olur:

class Foo : IDisposable
{
     public void Dispose(){ CloseSomeHandle(); }
}

ve bir sonlandırıcı, ya da bir şey uygulamak değil. Çerçeve bana Atma yöntemi bu?

Evet, bu kulağa aptalca geliyor biliyorum, Ve Tüm mantık her zaman beni emin yaptık kafamın arka kısmında 2 şey var, ama kazandı anlamına gelir.

  1. Birisi birkaç yıl önce bir kez aslında bunu yapmak, ve o kişi "kendi şeyler bilmek." çok sağlam bir sicili olduğunu söyledi

  2. Derleyici/çerçeve yapar diğer 'sihirli' şeyler ne olduğuna bağlı arabirimleri uygulamak (örn: dosyalarda grup, uzatma yöntemleri, seri hale getirme temel nitelikleri, vb.), öyle anlaşılıyor ki bu olabilir 'magic' de.

Bu konuda bir sürü şey okudum ve bir şeyler ima sürü var iken, hiç bir bulmak mümkün oldumkesinEvet ya da Hayır bu soruya cevap.

CEVAP
5 EYLÜL 2008, Cuma


.Net Çöp Toplayıcı Nesneyi çağırır.Çöp toplama konusunda bir nesnenin Finalize yöntemi. Tarafındanvarsayılanyaparhiçbir şeyve eğer ek kaynak isterseniz overidden olmalıdır.

Atın otomatik olarak adlandırılır ve olmalıdırexplicitykaynakları serbest bırakılması için, içinde 'gibi' ya da 'nihayet' blok . deneyin kullanıyorsanız denir

daha fazla bilgi için http://msdn.microsoft.com/en-us/library/system.object.finalize.aspx bkz

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Caroline Martin

    Caroline Mar

    19 EYLÜL 2008
  • SomeOne Pro

    SomeOne Pro

    25 EKİM 2013
  • Techmoan

    Techmoan

    31 Mayıs 2009