Daftar Isi:
Definisi - Apa artinya Finalisasi?
Finalisasi adalah metode objek yang berisi kode yang diperlukan untuk membebaskan sumber daya yang tidak dikelola dan melakukan operasi pembersihan sebelum pengumpulan sampah (GC).
Metode finalisasi digunakan untuk membersihkan sumber daya yang tidak dikelola oleh .NET. Meskipun .NET framework dirancang untuk melepaskan sumber daya yang dikelola dengan melakukan tugas manajemen memori secara implisit, sumber daya aplikasi yang tidak dikelola - seperti pegangan file dan koneksi basis data - harus dirilis secara eksplisit.
Techopedia menjelaskan Finalisasi
Sementara finalisasi dirancang untuk secara implisit disebut oleh GC, metode buang dapat secara eksplisit dipanggil oleh kode pengguna untuk sumber daya gratis.
Finalisasi mirip dengan destruktor C ++ tradisional, karena masing-masing bertanggung jawab untuk membebaskan sumber daya objek. C ++ destructors dieksekusi segera ketika suatu objek keluar dari ruang lingkup, sedangkan finalisasi dipanggil selama pembersihan objek di GC. Dalam C #, finalisasi tidak bisa langsung dipanggil atau diganti. Jika sebuah destructor dideklarasikan, ia dikonversi ke metode final ketika program dikompilasi.
Selama penyelesaian, alokasi memori atau metode virtual panggilan harus dihindari. Ruang lingkup finalisasi harus dilindungi sehingga hanya diakses dalam kelas yang sama atau kelas turunannya. Finalisasi seharusnya tidak merujuk objek lain. Dalam C #, memanggil menyelesaikan langsung pada objek selain kelas dasarnya adalah operasi yang tidak valid. Kode finalisasi harus minimal tanpa ada panggilan yang mampu memblokir utas panggilan. Karena finalisasi dipanggil oleh utas khusus, kodenya tidak boleh menggunakan penyimpanan lokal utas atau teknik apa pun yang membutuhkan afinitas utas.
Menggunakan finalisasi sebagai mekanisme mundur untuk melepaskan memori atau sumber daya yang tidak dikelola adalah penting, karena kurangnya determinisme dan efek pada kinerja GC.