Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

ความแตกต่างระหว่าง Boxing และ Unboxing ในการเขียนโปรแกรม C#


C# จัดเตรียมสองวิธีในการเชื่อมโยงประเภทค่ากับประเภทอ้างอิงและในทางกลับกัน วิธีการเชื่อมโยงสองวิธีนี้มีชื่อว่า boxing และ unboxing โดยที่ Boxing ใช้สำหรับการแปลงประเภทค่าเป็นประเภทอ็อบเจกต์ ในขณะที่ Unboxing หมายถึงการแปลงประเภทอ็อบเจ็กต์เป็นประเภทค่า

ต่อไปนี้เป็นข้อแตกต่างที่สำคัญระหว่าง Boxing และ Unboxing

ซีเนียร์ เลขที่ คีย์ ชกมวย กำลังแกะกล่อง
1 การนำไปใช้ การชกมวยประเภทอ็อบเจ็กต์เรียกว่าประเภทค่า การแกะกล่องโดยทั่วไปจะประมวลผลค่าที่ดึงมาจากวัตถุชนิดบรรจุกล่อง
2 ที่เก็บข้อมูล ในกรณีของการชกมวย ค่าที่เก็บไว้ในสแต็กจะถูกคัดลอกไปยังอ็อบเจ็กต์ที่เก็บไว้ในหน่วยความจำฮีป ในทางกลับกัน ในกรณีที่แกะค่าของอ็อบเจ็กต์ที่เก็บไว้ในหน่วยความจำฮีพจะถูกคัดลอกไปยังประเภทค่าที่จัดเก็บไว้ในสแต็ก
3 ประเภทของการแปลง การชกมวยโดยทั่วไปเรียกว่าการแปลงโดยนัย การแกะกล่องหมายถึงการแปลงที่ชัดเจน

ตัวอย่างการชกมวยกับการแกะกล่อง

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);
   }
}

ผลลัพธ์

Value of x is {0}119
Value type of val is {0}120
Object type of val is {0}119