C # میں باکسنگ اور ان باکسنگ کے مابین فرق

مصنف: Laura McKinney
تخلیق کی تاریخ: 2 اپریل 2021
تازہ کاری کی تاریخ: 5 مئی 2024
Anonim
روس میں ٹاپ 20 کے سب سے زیادہ امیر ذبیعہ (2018 - 2020)
ویڈیو: روس میں ٹاپ 20 کے سب سے زیادہ امیر ذبیعہ (2018 - 2020)

مواد


C # میں ، تمام قدر کی اقسام کلاس آبجیکٹ سے اخذ کی گئیں۔ تو ، قسم آبجیکٹ کا ایک حوالہ متغیر کسی بھی دوسری قسم کی قسم کا حوالہ دے سکتا ہے۔ سی # باکسنگ اور ان باکسنگ کے لئے دو طریقے متعارف کرواتا ہے ، جو قدر کی قسم کو حوالہ کی قسم سے جوڑتا ہے۔ باکسنگ اور ان باکسنگ کے مابین بنیادی فرق یہ ہے کہ باکسنگ ویلیو ٹائپ کو کسی شے کی قسم میں تبدیل کرنا ہے جبکہ دوسری طرف ، ان باکسنگ اصطلاح سے مراد آبجیکٹ ٹائپ کو ویلیو ٹائپ میں تبدیل کرنا ہے۔ آئیے باکسنگ اور ان باکسنگ کے مابین دوسرے اختلافات کا مطالعہ کریں۔

  1. موازنہ چارٹ
  2. تعریف
  3. کلیدی اختلافات
  4. نتیجہ اخذ کرنا

موازنہ چارٹ

موازنہ کی بنیادباکسنگان باکسنگ
بنیادیآبجیکٹ کی قسم ویلیو ٹائپ سے مراد ہے۔باکسڈ آبجیکٹ سے قدر وصولی کا عمل۔
ذخیرہاسٹیک پر ذخیرہ شدہ قیمت ہیپ میموری پر اسٹور کردہ آبجیکٹ میں کاپی کی جاتی ہے۔ہیپ میموری پر ذخیرہ شدہ اشیاء کی قیمت اسٹیک پر محفوظ کردہ ویلیو ٹائپ پر کاپی کی جاتی ہے۔
تبدیلیباطن میں تبدیلی۔واضح تبدیلی۔
مثالint n = 24؛
اعتراض ob = n؛
int m = (int) ob؛


باکسنگ کی تعریف

باکسنگ ایک ویلیو ٹائپ کو کسی شے کی قسم میں تبدیل کرنے کا ایک طریقہ کار ہے۔ یہاں ، ویلیو ٹائپ اسٹیک پر اسٹور ہوتی ہے ، اور آبجیکٹ کی قسم ہیپ میموری میں اسٹور ہوتی ہے۔ آبجیکٹ کی قسم میں ویلیو ٹائپ کا یہ تبادلہ ایک باطنی تبادلہ ہے۔ آپ کسی شے کو براہ راست قدر تفویض کرسکتے ہیں ، اور C # باقی تبدیلی کو سنبھالے گا۔ آئیے ایک مثال کے ساتھ باکسنگ کو سمجھیں۔

انٹ i = 24؛ اعتراض ob = i؛ // اشیاء کی قسم ob میں عددی قسم n کو باکس کریں۔ یا اعتراض ob1 = 21؛ // یہاں بھی آبجیکٹ کی قسم ob1 سے ایک انٹیجر کی قسم سے مراد ہے

اوپر والے کوڈ میں ، انٹیجر ٹائپ i جس میں ویلیو 24 ہوتی ہے اسٹیک پر اسٹوریج ہوتی ہے اور آبجیکٹ ٹائپ ob پر کاپی کی جاتی ہے۔ کسی آبجیکٹ کی قسم اب ایک انٹیجر ویلیو کا حوالہ دے رہی ہے۔ اب ، "انٹ آئی میں" بھی قدر 24 پر مشتمل ہے اور "آبجیکٹ ٹائپ اوب" بھی 24 کی قدر پر مشتمل ہے ، لیکن دونوں اقدار ایک دوسرے سے خود مختار ہیں یعنی اگر آپ کی قدر کو تبدیل کرتے ہیں تو ، اس میں تبدیلی کی عکاسی نہیں ہوگی ob کی قدر


باکسنگ اضافی وقت کے ساتھ ساتھ اضافی میموری استعمال کرتی ہے۔ اس کی وجہ یہ ہے کہ ایک نئی شے ، جو ویلیو ٹائپ کا حوالہ دے گی ، ضروری ہے کہ وہ ڈھیر پر میموری کی جگہ مختص کرے۔ اگلا ، قیمت کی قسم جو اسٹیک پر محفوظ ہے ، ڈھیر کی میموری جگہ پر آبجیکٹ کی قسم اوب میں منتقل ہوجائے گی۔

ان باکسنگ کی تعریف

باکسنگ کا الٹ ان باکسنگ ہے۔ ان باکسنگ آبجیکٹ کی قسم کو ویلیو ٹائپ میں تبدیل کرنا ہے۔ ان باکسنگ میں ڈھیر پر ذخیرہ شدہ باکسڈ آبجیکٹ ٹائپ کی ویلیو اسٹیک پر اسٹوریج والی ویلیو ٹائپ میں منتقل کردی جاتی ہے۔ باکسنگ کے برخلاف ، ان باکسنگ کو واضح طور پر کرنا ہے۔ آبجیکٹ کی قسم کو واضح طور پر ویلیو ٹائپ پر ڈال دیا جاتا ہے ، اور ویلیو ٹائپ اس ویلیو کی طرح ہونی چاہئے جو اس آبجیکٹ کی قسم کا حوالہ دے رہی ہے۔ آئیے ایک مثال کے ساتھ ان باکسنگ کے تصور کو سمجھیں۔

انٹ i = 24؛ اعتراض ob = i؛ // اشیاء کی قسم ob میں عددی قسم n کو باکس کریں۔ int j = (int) ob؛ // آبجیکٹ کی قسم میں ذخیرہ شدہ انٹیگر ویلیو کو انٹیجیر کی قسم y سے انباکس کریں۔

آبجیکٹ اوب میں ذخیرہ شدہ قدر اسی طرح کی طرح ڈال کر بازیافت کی جاتی ہے جیسا کہ آبجیکٹ یعنی عددی قسم "j" کا حوالہ دے رہا تھا۔

ان باکسنگ میں زیادہ میموری اور زیادہ وقت لگتا ہے۔ چونکہ ، جب کسی شے کی قسم کو ان باکس نہیں لگانا ہوتا ہے تب ڈھیر پر محفوظ کردہ آبجیکٹ قسم کی قیمت کو اسٹیک پر محفوظ کردہ نئی ویلیو ٹائپ میں منتقل کرنا ہوتا ہے۔ آبجیکٹ کی قسم جس کی ویلیو دوبارہ حاصل کی گئی ہے اب وہ کوڑا کرکٹ جمع کرنے کے لئے دستیاب ہوگی۔

  1. باکسنگ میں ، کسی شے کو قدر کی نوعیت سے تعبیر کیا جاتا ہے۔ دوسری طرف ، باکسڈ آبجیکٹ سے قدر واپس لینے کے عمل کو ان باکسنگ کہتے ہیں۔
  2. اسٹیک پر محفوظ کردہ ویلیو ٹائپ کو ہیپ میموری پر اسٹور کردہ آبجیکٹ میں کاپی کیا جاتا ہے۔ دوسری طرف ، ان باکسنگ میں ، ہیپ میموری پر ذخیرہ شدہ کسی چیز کو اسٹیک میموری پر محفوظ کردہ ویلیو ٹائپ پر کاپی کیا جاتا ہے۔
  3. باکسنگ ایک واضح تبدیلی ہے جبکہ ، ان باکسنگ ایک واضح تبدیلی ہے۔

نتیجہ:

باکسنگ اور ان باکسنگ دونوں ہی زیادہ وقت اور میموری استعمال کرتے ہیں ، اور یہ محققانہ مہنگے ہوتے ہیں۔ ان میں قسم کی حفاظت میں بھی کمی ہے اور رن ٹائم اوور ہیڈ میں اضافہ ہوتا ہے۔ ہمیشہ یہ مشورہ دیا جاتا ہے کہ پروگرام میں باکسنگ اور ان باکسنگ کے بہت زیادہ استعمال سے گریز کریں۔