C # cung cấp hai phương thức để liên kết kiểu giá trị với kiểu tham chiếu và kiểu khác Versa. Hai phương pháp liên kết này được đặt tên là boxing và unboxing trong đó Boxing được sử dụng để chuyển đổi loại giá trị thành loại đối tượng trong khi Unboxing đề cập đến việc chuyển đổi loại đối tượng thành loại giá trị.
Sau đây là những điểm khác biệt quan trọng giữa Boxing và Unboxing.
Sr. Không. | Phím | Quyền anh | Mở hộp |
---|---|---|---|
1 | Thực hiện | Kiểu đối tượng thực hiện quyền anh được gọi là kiểu giá trị. | Việc mở hộp về cơ bản xử lý giá trị truy xuất từ đối tượng được đóng hộp. |
2 | Dung lượng | Trong trường hợp quyền anh, giá trị được lưu trữ trên ngăn xếp được sao chép sang đối tượng được lưu trữ trên bộ nhớ heap. | Mặt khác, trong trường hợp mở hộp, giá trị của đối tượng được lưu trữ trên bộ nhớ heap được sao chép sang kiểu giá trị được lưu trữ trên ngăn xếp. |
3 | Loại chuyển đổi | Quyền anh nói chung được gọi là chuyển đổi ngầm. | Mở hộp đề cập đến chuyển đổi rõ ràng. |
Ví dụ về Boxing và Unboxing
JavaTester.java
public class JavaTester { public static void main(String[] args){ int val = 119; // Boxing Object o = val; // Change the value of val val = 120; //unboxing int x = (int)o; System.out.println("Value of x is {0}"+ x); System.out.println("Value type of val is {0}"+val); System.out.println("Object type of val is {0}"+o); } }
Đầu ra
Value of x is {0}119 Value type of val is {0}120 Object type of val is {0}119