Perbedaan Antara membuang () dan menyelesaikan ()

Perbedaan Utama - buang () vs. menyelesaikan ()
 

Itu perbedaan utama antara membuang () dan menyelesaikan () adalah itu dispose () harus secara eksplisit dipanggil oleh programmer sementara finalize () dipanggil oleh pemulung sebelum menghancurkan objek.

Dispose () adalah metode untuk menutup atau melepaskan sumber daya yang tidak dikelola seperti file, stream yang dipegang oleh suatu objek. Finalisasi adalah metode untuk melakukan operasi pembersihan pada sumber daya yang tidak dikelola yang dipegang oleh objek saat ini sebelum objek dihancurkan.

ISI

1. Ikhtisar dan Perbedaan Utama
2. Apa yang dibuang ()
3. Apa yang diselesaikan ()
4. Kesamaan Antara membuang () dan menyelesaikan ()
5. Perbandingan Berdampingan - buang () vs difinalisasi () dalam Bentuk Tabular
6. Ringkasan

Apa yang membuang ()?

Salah satu keuntungan terpenting dari .NET framework adalah ia menyediakan pengumpulan sampah otomatis. Secara otomatis melepaskan memori dari objek yang tidak digunakan. Dalam bahasa pemrograman seperti C dan C ++, programmer harus menangani manajemen memori sendiri. Tetapi dalam bahasa seperti C # yang dibangun di atas .NET framework menyediakan pengumpul sampah. Ini membantu mengelola memori. Itu tidak dapat digunakan untuk melepaskan sumber daya memori yang tidak dikelola. Metode dispose () dapat digunakan untuk mencapai tugas ini.

Metode dispose () dapat digunakan untuk melepaskan sumber daya seperti koneksi basis data, penangan file dll. Metode ini tidak dipanggil secara otomatis. Oleh karena itu, programmer harus menerapkan metode ini. Segera setelah metode ini dipanggil, memori untuk sumber daya tidak terkelola tertentu akan dirilis. Metode ini dideklarasikan di antarmuka IDisposeable.

Apa yang diselesaikan ()?

Metode penyelesaian hanya dipanggil oleh pengumpul sampah ketika referensi ke suatu objek tidak digunakan lebih lanjut. Metode ini disebut sesaat sebelum menghancurkan objek. Metode ini diimplementasikan dengan bantuan destructor. Metode final didefinisikan dalam kelas java.lang.object. Metode ini dinyatakan sebagai terproteksi. Itu tidak dinyatakan sebagai publik untuk menghindari akses oleh kelas-kelas lain. Secara keseluruhan, metode finalisasi dapat meminimalkan kinerja program karena tidak membebaskan memori secara instan.

Apa Persamaan Antara membuang () dan menyelesaikan ()?

  • Baik buang () dan finalisasi () dapat digunakan untuk membebaskan memori yang dialokasikan untuk sumber daya yang tidak dikelola.

Apa Perbedaan Antara membuang () dan menyelesaikan ()?

buang () vs finalisasi ()

Dispose () adalah metode untuk menutup atau melepaskan sumber daya yang tidak dikelola seperti file, stream yang dipegang oleh suatu objek. Finalisasi adalah metode untuk melakukan operasi pembersihan pada sumber daya yang tidak dikelola yang dimiliki oleh objek saat ini sebelum objek dihancurkan.
 Objektif
Metode buang digunakan untuk membebaskan sumber daya yang tidak dikelola saat dipanggil. Metode finalisasi digunakan untuk membebaskan sumber daya yang tidak dikelola sebelum objek dihancurkan.
Antarmuka atau Kelas yang Ditentukan
Buang () didefinisikan dalam antarmuka IDisposable antarmuka. Finalisasi () didefinisikan dalam kelas java.lang.object.
 Metode Memohon
Metode buang dipanggil oleh programmer. Metode final dipanggil oleh pemulung.
Akses Specifier
Metode buang bersifat publik. Metode penyelesaian dilindungi.
Kecepatan
Metode buang dipanggil langsung. Metode finalisasi dipanggil perlahan.
Performa
Buang tidak akan meminimalkan kinerja program. Metode penyelesaian mungkin meminimalkan kinerja program.

Ringkasan - buang () vs. menyelesaikan ()

Artikel ini membahas perbedaan antara membuang dan menyelesaikan metode dalam C #. Perbedaan antara dispose () dan finalize () adalah bahwa, dispose () harus secara eksplisit dipanggil oleh programmer sementara finalize () dipanggil oleh pengumpul sampah sebelum menghancurkan objek.

Referensi:

1. Menerapkan Finalisasi dan Buang untuk Membersihkan Sumber Daya yang Tidak dikelola. Tersedia disini  
2. Sharma, Nitya. "Kembali ke Dasar - Buang Vs Finalisasi." C # Pojok. Tersedia disini  

Gambar milik:

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