Disyorkan, 2024

Pilihan Editor

Perbezaan Antara Tinju dan Unboxing dalam C #

Dalam C #, semua jenis nilai diperoleh daripada objek kelas. Jadi, pembolehubah rujukan objek jenis boleh merujuk kepada jenis nilai lain. C # memperkenalkan dua kaedah untuk Tinju dan Unboxing, yang menghubungkan jenis nilai kepada jenis rujukan. Perbezaan asas antara Tinju dan Unboxing ialah Boxing adalah penukaran jenis nilai kepada jenis objek sedangkan pada tangan yang lain, istilah Unboxing merujuk kepada penukaran jenis objek kepada jenis nilai. Mari kita mengkaji perbezaan lain antara Tinju dan Unboxing.

Carta Perbandingan

Asas untuk PerbandinganTinjuUnboxing
AsasJenis objek merujuk kepada jenis nilai.proses pengambilan nilai dari objek berkotak.
PenyimpananNilai yang disimpan pada timbunan akan disalin ke objek yang disimpan pada memori timbunan.Nilai objek yang disimpan di memori tumpukan disalin ke jenis nilai yang disimpan pada timbunan.
PenukaranPenukaran tersirat.Penukaran eksplisit.
Contohint n = 24;
objek ob = n;
int m = (int) ob;

Definisi Tinju

Tinju adalah prosedur untuk menukar jenis nilai kepada jenis objek. Di sini, jenis nilai disimpan pada timbunan, dan jenis objek disimpan dalam memori timbunan. Jenis nilai penukaran ini kepada jenis objek adalah penukaran tersirat. Anda boleh memberi nilai secara langsung kepada objek, dan C # akan mengendalikan penukaran yang lain. Mari kita fahami Tinju dengan contoh.

 int i = 24; objek ob = i; // Kotak jenis integer n ke objek jenis ob. atau objek ob1 = 21; // di sini juga objek jenis ob1 merujuk kepada jenis integer 

Dalam kod di atas, jenis integer i yang mengandungi nilai 24 disimpan di timbunan dan disalin ke objek jenis ob. Jenis objek kini merujuk kepada nilai integer. Sekarang, "int i" juga mengandungi nilai 24 dan "objek jenis ob" juga mengandungi nilai 24, tetapi kedua-dua nilai adalah bebas antara satu sama lain iaitu jika anda menukar nilai i, ia tidak akan mencerminkan perubahan dalam nilai ob.

Tinju menggunakan memori tambahan bersama-sama dengan masa tambahan. Sebabnya ialah objek baru, yang akan merujuk kepada jenis nilai, mesti memperuntukkan ruang memori pada timbunan. Seterusnya, nilai jenis nilai yang disimpan pada timbunan akan dipindahkan ke jenis objek, di lokasi memori tumpukan.

Definisi Unboxing

Sebaliknya Tinju adalah Unboxing. Unboxing adalah penukaran jenis objek kepada jenis nilai. Dalam Unboxing, nilai jenis objek berkotak yang disimpan pada timbunan dipindahkan ke jenis nilai yang disimpan pada timbunan. Tidak seperti Boxing, Unboxing perlu dilakukan dengan jelas. Jenis objek secara eksplisit dilemparkan ke jenis nilai, dan jenis nilai mestilah sama dengan nilai jenis objek merujuk kepada. Mari kita faham konsep Unboxing dengan contoh.

 int i = 24; objek ob = i; // Kotak jenis integer n ke objek jenis ob. int j = (int) ob; // Unbox nilai integer yang tersimpan dalam obyek jenis objek ke integer jenis y. 

Nilai yang disimpan dalam objek ob diperolehi dengan menghantarnya kepada jenis yang sama seperti objek merujuk kepada jenis integer iaitu "j".

Unboxing juga menggunakan lebih banyak memori dan lebih banyak masa. Memandangkan, apabila jenis objek harus dikosongkan maka nilai jenis objek yang disimpan pada timbunan harus dipindahkan ke jenis nilai baru yang disimpan pada timbunan. Jenis objek yang nilai yang telah diambil akan tersedia untuk pengumpulan sampah.

Perbezaan Utama Antara Tinju dan Unboxing

  1. Dalam tinju, objek dibuat untuk dirujuk sebagai jenis nilai. Sebaliknya, proses pengambilan nilai kembali dari objek yang berkotak disebut unboxing.
  2. Jenis nilai yang disimpan pada timbunan disalin ke objek yang disimpan pada memori timbunan. Sebaliknya, di unboxing, objek yang disimpan pada memori heap disalin ke jenis nilai yang disimpan pada ingatan stack.
  3. Tinju adalah penukaran tersirat sedangkan, unboxing adalah penukaran eksplisit.

Kesimpulan:

Kedua-dua tinju dan unboxing menggunakan lebih banyak masa dan ingatan, dan mereka adalah sangat mahal. Mereka juga tidak mempunyai keselamatan jenis dan peningkatan overhead runtime. Ia sentiasa dinasihatkan untuk mengelakkan terlalu banyak penggunaan tinju dan unboxing dalam program ini.

Top