কম্পিউটার টিউটোরিয়াল

সি#-এ বক্সিং এবং আনবক্সিং-এর পার্থক্য


সি# (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

  1. জাভাস্ক্রিপ্টে == এবং === অপারেটরের পার্থক্য

  2. MEAN.js এবং MEAN.io-এর পার্থক্য

  3. সেলপ্যাডিং (Cellpadding) এবং সেলস্পেসিং (Cellspacing) এর পার্থক্য

  4. গো এবং পাইথন প্রোগ্রামিং ভাষার পার্থক্য