Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Khác biệt giữa Boxing và Unboxing trong C#

Khái niệm

Boxing: Chuyển kiểu giá trị (value type) → kiểu đối tượng (object type) - ngầm định (implicit).

Unboxing: Chuyển object → value type - tường minh (explicit).

Bảng so sánh

STTTiêu chíBoxingUnboxing
1Thực thiObject tham chiếu đến value typeLấy giá trị từ object đã box
2Lưu trữStack → Heap (copy)Heap → Stack (copy)
3Kiểu chuyển đổiImplicit (ngầm định)Explicit (tường minh, cần cast)

Ví dụ C#

int val = 119;
Object o = val;      // Boxing
val = 120;
int x = (int)o;      // Unboxing
// x = 119, val = 120, o = 119