Perbezaan Antara membuang () dan memuktamadkan ()

Perbezaan Utama - buang () vs muktamadkan ()
 

The perbezaan utama antara melupuskan () dan memuktamadkan () ialah buang () telah dijelaskan secara eksplisit oleh pengatur program sementara dimuktamadkan () dipanggil oleh pengumpul sampah sebelum memusnahkan objek.

Melupuskan () adalah kaedah untuk menutup atau melepaskan sumber yang tidak dikelola seperti fail, aliran yang dipegang oleh objek. Memuktamadkan adalah kaedah untuk melaksanakan operasi pembersihan pada sumber yang tidak dikendalikan oleh objek semasa sebelum objek dimusnahkan.

KANDUNGAN

1. Gambaran Keseluruhan dan Perbezaan Utama
2. Apa yang dibuang ()
3. Apa yang dimuktamadkan ()
4. Persamaan Antara membuang () dan memuktamadkan ()
5. Perbandingan Side by Side - buang () vs finalize () dalam Borang Tabular
6. Ringkasan

Apa yang dibuang ()?

Salah satu kelebihan yang paling penting dalam rangka kerja NET adalah ia menyediakan koleksi sampah automatik. Ia secara automatik mengeluarkan memori objek yang tidak digunakan. Dalam bahasa pengaturcaraan seperti C dan C ++, pengaturcara perlu mengendalikan pengurusan memori dengan sendirinya. Tetapi dalam bahasa seperti C # yang dibina di atas rangka kerja NET menyediakan pengumpul sampah. Ia membantu menguruskan memori. Ia tidak boleh digunakan untuk melepaskan sumber memori yang tidak dikendalikan. Kaedah buang () boleh digunakan untuk mencapai matlamat ini.

Kaedah buang () boleh digunakan untuk melepaskan sumber seperti sambungan pangkalan data, pengendali fail dll. Kaedah ini tidak dipanggil secara automatik. Oleh itu, pengaturcara perlu melaksanakan kaedah ini. Sebaik sahaja kaedah ini digunakan, ingatan untuk sumber yang tidak dikawal itu akan dibebaskan. Kaedah ini diisytiharkan dalam antara muka IDisposeable.

Apa yang dimuktamadkan ()?

Kaedah akhir hanya dipanggil oleh pengumpul sampah apabila rujukan kepada objek tidak digunakan lagi. Kaedah ini dipanggil sebelum memusnahkan objek. Kaedah ini dilaksanakan dengan bantuan pembunuh. Kaedah akhir ditentukan dalam kelas java.lang.object. Kaedah ini diisytiharkan sebagai dilindungi. Ia tidak diisytiharkan sebagai orang awam untuk mengelakkan akses oleh kelas-kelas lain. Secara keseluruhan, kaedah akhir dapat meminimumkan prestasi program kerana ia tidak membebaskan memori dengan serta-merta.

Apakah Kesamaan Antara membuang () dan memuktamadkan ()?

  • Kedua-dua melupuskan () dan dimuktamadkan () boleh digunakan untuk membebaskan memori yang diperuntukkan untuk sumber yang tidak dikelola.

Apakah Perbezaan Antara membuang () dan memuktamadkan ()?

buang () vs finalize ()

Melupuskan () adalah kaedah untuk menutup atau melepaskan sumber yang tidak dikelola seperti fail, aliran yang dipegang oleh objek. Muktamad adalah satu kaedah untuk melakukan operasi pembersihan pada sumber yang tidak dikelola yang dipegang oleh objek semasa sebelum objek dimusnahkan.
 Objektif
Kaedah buang digunakan untuk membebaskan sumber-sumber yang tidak diurus apabila ia digunakan. Kaedah akhir digunakan untuk membebaskan sumber yang tidak dikawal sebelum objek dimusnahkan.
Antara Muka atau Kelas yang Ditakrifkan
Pembuangan () ditakrifkan dalam antara muka antara muka IDisposable. Muktamad () ditakrifkan dalam kelas java.lang.object.
 Menerapkan Kaedah
Kaedah buang dipanggil oleh pengaturcara. Kaedah akhir dipanggil oleh pengumpul sampah.
Penunjuk Akses
Kaedah buang adalah umum. Kaedah finalis dilindungi.
Kelajuan
Kaedah buang digunakan dengan serta-merta. Kaedah akhir dimulakan dengan perlahan.
Prestasi
Pelupusan tidak akan meminimumkan prestasi program. Kaedah akhir mungkin meminimumkan prestasi program.

Ringkasan - buang () vs muktamadkan ()

Artikel ini membincangkan perbezaan antara melupuskan dan memuktamadkan kaedah dalam C #. Perbezaan antara melupuskan () dan memuktamadkan () adalah bahawa, melupuskan () telah dijelaskan dengan jelas oleh pengaturcara sementara dimuktamadkan () dipanggil oleh pengumpul sampah sebelum memusnahkan objek.

Rujukan:

1.Memaksanakan Muktamad dan Lupuskan untuk Membersihkan Sumber yang Tidak Diurus. Terdapat di sini  
2.Sharma, Nitya. "Kembali Ke Asas - Buang Vs Finalize." C # Corner. Terdapat di sini  

Image Courtesy:

1.'Csharp Logo'By Andres15alvarez - Kerja sendiri, (CC BY-SA 4.0) melalui Wikimedia Commons