সি# (C#) ভ্যালু টাইপকে রেফারেন্স টাইপে এবং রেফারেন্স টাইপকে ভ্যালু টাইপে রূপান্তর করার দুটি পদ্ধতি দেয়: বক্সিং (Boxing) এবং আনবক্সিং (Unboxing)। বক্সিং হলো ভ্যালু টাইপকে অবজেক্ট টাইপে রূপান্তর, অনবক্সিং হলো অবজেক্ট টাইপকে ভ্যালু টাইপে রূপান্তর।
মূল পার্থক্যগুলো:
| ক্রমিক নং | বিষয় | Boxing | Unboxing |
|---|---|---|---|
| ১ | ইমপ্লিমেন্টেশন | অবজেক্ট টাইপ ভ্যালু টাইপকে রেফার করে। | বক্সড অবজেক্ট থেকে ভ্যালু রিট্রিভ করা। |
| ২ | স্টোরেজ | স্ট্যাকে সংরক্ষিত ভ্যালু হিপ মেমোরিতে কপি হয়। | হিপে সংরক্ষিত অবজেক্টের ভ্যালু স্ট্যাকে কপি হয়। |
| ৩ | রূপান্তর টাইপ | ইমপ্লিসিট কনভার্সন (Implicit conversion)। | এক্সপ্লিসিট কনভার্সন (Explicit conversion)। |
বক্সিং vs আনবক্সিং উদাহরণ
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 " + x);
System.out.println("Value type of val is " + val);
System.out.println("Object type of val is " + o);
}
}
আউটপুট
Value of x is 119 Value type of val is 120 Object type of val is 119