temel fark dispose () ve finalize () arasında nesneyi yok etmeden önce finalize () çöp toplayıcı tarafından çağrılırken dispose () öğesinin programcı tarafından açıkça çağrılması gerekir.
Dispose () yöntemi, nesneler tarafından tutulan dosyalar, akışlar gibi yönetilmeyen kaynakları kapatma veya serbest bırakma yöntemidir. Sonlandırma, nesne yok edilmeden önce geçerli nesne tarafından tutulan yönetilmeyen kaynaklarda temizleme işlemleri gerçekleştirmek için bir yöntemdir.
1. Genel Bakış ve Temel Fark
2. dispose () nedir
3. Sonuçlandırma nedir ()
4. dispose () ve finalize () arasındaki benzerlikler
5. Yan Yana Karşılaştırma - Tablo Formunda dispose () vs finalize ()
6. Özet
.NET çerçevesinin en önemli avantajlarından biri otomatik çöp toplama sağlamasıdır. Kullanılmayan nesnelerin belleğini otomatik olarak serbest bırakır. C ve C ++ gibi programlama dillerinde, programcı bellek yönetimini kendi başına idare etmek zorundadır. Ancak .NET çerçevesi üzerine kurulu C # gibi dillerde çöp toplayıcı sağlar. Belleğin yönetilmesine yardımcı olur. Yönetilmeyen bellek kaynaklarını serbest bırakmak için kullanılamaz. Bu görevi gerçekleştirmek için dispose () yöntemi kullanılabilir.
Dispose () yöntemi, veritabanı bağlantıları, dosya işleyicileri vb. Kaynakları serbest bırakmak için kullanılabilir. Bu yöntem otomatik olarak çağrılmaz. Bu nedenle, programcı bu yöntemi uygulamalıdır. Bu yöntem çağrıldığında, yönetilmeyen belirli bir kaynağın belleği serbest bırakılır. Bu yöntem IDisposeable arayüzünde bildirildi.
Sonlandırma yöntemi, yalnızca bir nesneye başvuru daha fazla kullanılmadığında çöp toplayıcı tarafından çağrılır. Bu yöntem, nesneyi yok etmeden hemen önce çağrılır. Bu yöntem yıkıcı yardımı ile uygulanır. Finalize yöntemi java.lang.object sınıfında tanımlanır. Bu yöntem korumalı olarak bildirilir. Diğer sınıfların erişiminden kaçınmak herkese açık olarak ilan edilmez. Genel olarak, sonlandırma yöntemi, belleği anında serbest bırakmadığı için programın performansını en aza indirebilir.
dispose () ile finalize () | |
Dispose (), dosyalar, nesne tarafından tutulan akışlar gibi yönetilmeyen kaynakları kapatma veya serbest bırakma yöntemidir. | Sonlandırma, nesne yok edilmeden önce geçerli nesne tarafından tutulan yönetilmeyen kaynaklarda temizleme işlemleri gerçekleştirmek için bir yöntemdir. |
Amaç | |
Dispose yöntemi, yönetilmeyen kaynakları çağrıldığında serbest bırakmak için kullanılır. | Sonlandırma yöntemi, nesne yok edilmeden önce yönetilmeyen kaynakları serbest bırakmak için kullanılır. |
Tanımlı Arayüz veya Sınıf | |
Dispose () arabirimi IDisposable arabiriminde tanımlanır. | Finalize () java.lang.object sınıfında tanımlanır. |
Çağırma Yöntemi | |
Dispose yöntemi programcı tarafından çağrılır. | Sonlandırma yöntemi çöp toplayıcı tarafından çağrılır. |
Erişim Specifier | |
Dispose yöntemi herkese açık. | Sonlandırma yöntemi korunur. |
hız | |
Dispose yöntemi anında çağrılır. | Sonlandırma yöntemi yavaşça çağrılır. |
Verim | |
İmha, programın performansını en aza indirmeyecektir. | Sonlandırma yöntemi programın performansını en aza indirebilir. |
Bu makalede, C # 'de dispose ve finalize yöntemleri arasındaki fark tartışılmıştır. Dispose () ve finalize () arasındaki fark, dispose () öğesinin programcı tarafından açıkça çağrılması gerekirken, finalize () nesnenin yok edilmesinden önce çöp toplayıcı tarafından çağrılmasıdır.
Yönetilmeyen Kaynakların Temizlenmesi ve Sonlandırılması Burada mevcut
2.Sharma, Nitya. “Temellere Geri Dön - Atma Vs Finalize.” C # Köşe. Burada mevcut
1.'Csharp Logosu 'Andres15alvarez tarafından - Commons Wikimedia üzerinden kendi çalışması, (CC BY-SA 4.0)