C# वैल्यू टाइप को रेफरेंस टाइप से लिंक करने के लिए दो तरीके प्रदान करता है और इसके विपरीत। लिंक करने के इन दो तरीकों को बॉक्सिंग और अनबॉक्सिंग नाम दिया गया है, जहां बॉक्सिंग का उपयोग वैल्यू टाइप को ऑब्जेक्ट टाइप में बदलने के लिए किया जाता है जबकि अनबॉक्सिंग का मतलब ऑब्जेक्ट टाइप को वैल्यू टाइप में बदलना है।
बॉक्सिंग और अनबॉक्सिंग के बीच महत्वपूर्ण अंतर निम्नलिखित हैं।
| Sr. नहीं. | कुंजी | मुक्केबाजी | अनबॉक्सिंग |
|---|---|---|---|
| 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)