Form oluşturduğumda, otomatik olarak oluşturulan kod geçersiz kılınan bir Dispose yöntemini içermez. Bu, formdaki bütün kontroller için Dispose çağrılmamak anlamına mı geliyor?Form.Dispose() çağrısı, Inside Dispose() öğesini denetler mi?
cevap
Formda Dispose
numaralı telefonu aradığınızda, Controls
koleksiyonundaki her denetim için Dispose
'u arayacaktır. Bu kontroller de aynısını yapar, bu nedenle sonunda tüm kontroller 'Dispose
yönteminin çağrılmış olması gerekir. Bunun kontrollerin tasarımcıda bulunup bulunmadığına bağlı olmadığını unutmayın; Dispose
çağrısının yapıldığı anda formun Controls
koleksiyonunda bulunan kontrol örneklerini temel alır. Bazı konteyner kendini kontrol ve çağrı birine taban sınıfı veya içerdiği kontroller üzerinde yineleme ve üzerlerinde Dispose
çağrı ilerleyen olmadan Dispose
geçersiz oluşturursanız
ben bu olmayacaktı görebiliyordu tek durumdur.
Olmalıdır. YourForm.designer.cs dosyasına bakmanız gerekebilir. Bu gibi görünecektir:
protected override void Dispose(bool disposing)
{
if(disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing)
}
base.Dispose();
çağrı Formu eklenen kontrolleri temizlik ilgilenir.
Bu doğru değil; Formda, UI olmayan bileşenlere ("Timer", "HelpProvider" veya "BackgroundWorker" gibi) sahip olmadığınız sürece, 'components' alanı 'null'dır. 'bileşenleri' bu bileşenleri bertaraf eder. Düğmeler, metin kutuları vb. Gibi diğer denetimlere * çağrı yapma * çağrısı yapar. –
Tam olarak, formun denetimleri aslında 'base.Dispose()', yani 'Control.Dispose()' çağrısıyla çağrılır. Reflector ile Form.Dispose() 'ya baktığınızda göreceğiniz gibi aslında çok daha fazla temizlik var. –
Güncellemeler, yorumlar için teşekkürler – SwDevMan81
- 1. Golang çağrısı DLL'de mi?
- 2. jstl inside javascript
- 3. EventHandlers and C# Sınıflar destructor/Dispose
- 4. PyQt'deki QTreeWidgetItem öğesini silinsin mi?
- 5. SO_RCVTIMEO, accept() öğesini etkiler mi?
- 6. AngularJS yönergeleri, denetleyiciden erişimi denetler
- 7. ListView Inside CardView Tam uzunluğu gösteriliyor
- 8. JavaScript'i kullanarak HTML inside div ekle/kaldır
- 9. WPF kullanma Komut Bağlamada kendi özelliklerini denetler
- 10. MVVM Light - Kullanıcı Görüntüleme Sayısı olarak denetler
- 11. XSL değer oluşturma INSIDE bir form
- 12. ayrıştırma html inside ng-bind angularJS kullanarak
- 13. Angular2 ngModel inside ngFor (Veriler girişe bağlanmaz)
- 14. çağrısı
- 15. IEnumerator: Boş bir Dispose yöntemine sahip olmak normal midir?
- 16. AnimatorSet setStartDelay çağrısı onAnimationStart
- 17. Kod Analizi Uyarı CA2213 - Call Dispose() IDisposable destek alanında
- 18. UICollectionViewDeğiştirme çağrısı Güncellenmediğinde otomatik olarak otomatik olarak gösterilsin mi?
- 19. Tek bir gönderim() çağrısı kullanarak birden fazla datagram gönderilsin mi?
- 20. python'u kullanırken opencv'de ReleaseCapture öğesini bulamıyor musunuz?
- 21. EntityManager.flush() öğesini çağırırken, ikinci önbelleği de temizler mi?
- 22. jQuery: Son iki öğe öğesini mi almak istiyorsunuz?
- 23. Bir liste öğesini bir bağlantıda sarmak ses mi?
- 24. jQuery "this" öğesini ve CSS seçiciyi mi kullanıyorsunuz?
- 25. JQuery - hareketli DOM öğesini yeni ana öğeye mi hareket ettiriyorsunuz?
- 26. loadMask() öğesini extjs içinde tek bir öğeye mi uygulamak istiyorsunuz?
- 27. Özel görünümde super.onDraw() öğesini geri çağırmam gerekir mi?
- 28. Bir python komut dosyasının içinde easy_install öğesini mi kullanıyorsunuz?
- 29. std :: enable_shared_from_this: destroctor'da shared_from_this() öğesini çağırmasına izin verilir mi?
- 30. Rspec en iyi uygulamalarla görüntü/denetleme sınamasını denetler
Yup. Bileşenler farklı şekilde yapılır, otomatik oluşturulan Dispose() yönteminin işi budur. Bir kontrolün Kontroller koleksiyonundan kaldırılması ve bertaraf edilmemesi, sızıntının iyi bir yoludur. –