Computer >> Máy Tính >  >> Lập trình >> lập trình C

Sự khác biệt giữa Boxing và Unboxing trong lập trình C #.

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