సి # లో బాక్సింగ్ మరియు అన్‌బాక్సింగ్ మధ్య వ్యత్యాసం

రచయిత: Laura McKinney
సృష్టి తేదీ: 2 ఏప్రిల్ 2021
నవీకరణ తేదీ: 5 మే 2024
Anonim
లైట్‌బర్న్ ఇన్‌స్టాల్ చేసి, మొదట ఎక్స్‌-కార్వ్ / ఆప్ట్ లేజర్‌లను ఉపయోగించండి
వీడియో: లైట్‌బర్న్ ఇన్‌స్టాల్ చేసి, మొదట ఎక్స్‌-కార్వ్ / ఆప్ట్ లేజర్‌లను ఉపయోగించండి

విషయము


C # లో, అన్ని విలువ రకాలు తరగతి వస్తువు నుండి తీసుకోబడ్డాయి. కాబట్టి, టైప్ ఆబ్జెక్ట్ యొక్క రిఫరెన్స్ వేరియబుల్ ఏదైనా ఇతర విలువ రకాన్ని సూచిస్తుంది. సి # బాక్సింగ్ మరియు అన్బాక్సింగ్‌కు రెండు పద్ధతులను పరిచయం చేస్తుంది, ఇది విలువ రకాన్ని రిఫరెన్స్ రకానికి అనుసంధానిస్తుంది. బాక్సింగ్ మరియు అన్బాక్సింగ్ మధ్య ప్రాథమిక వ్యత్యాసం ఏమిటంటే, బాక్సింగ్ అనేది విలువ రకాన్ని ఆబ్జెక్ట్ రకానికి మార్చడం, మరోవైపు, అన్బాక్సింగ్ అనే పదం ఆబ్జెక్ట్ రకాన్ని విలువ రకానికి మార్చడాన్ని సూచిస్తుంది. బాక్సింగ్ మరియు అన్బాక్సింగ్ మధ్య ఇతర తేడాలను అధ్యయనం చేద్దాం.

  1. పోలిక చార్ట్
  2. నిర్వచనం
  3. కీ తేడాలు
  4. ముగింపు

పోలిక చార్ట్

పోలిక కోసం ఆధారంబాక్సింగ్అన్బాక్సింగ్
ప్రాథమికఆబ్జెక్ట్ రకం విలువ రకాన్ని సూచిస్తుంది.బాక్స్డ్ వస్తువు నుండి విలువను తిరిగి పొందే ప్రక్రియ.
నిల్వస్టాక్‌లో నిల్వ చేసిన విలువ కుప్ప మెమరీలో నిల్వ చేసిన వస్తువుకు కాపీ చేయబడుతుంది.కుప్ప మెమరీలో నిల్వ చేయబడిన వస్తువుల విలువ స్టాక్‌లో నిల్వ చేసిన విలువ రకానికి కాపీ చేయబడుతుంది.
మార్పిడిఅవ్యక్త మార్పిడి.స్పష్టమైన మార్పిడి.
ఉదాహరణint n = 24;
వస్తువు ob = n;
int m = (int) ob;


బాక్సింగ్ యొక్క నిర్వచనం

బాక్సింగ్ అనేది విలువ రకాన్ని ఆబ్జెక్ట్ రకంగా మార్చే విధానం. ఇక్కడ, విలువ రకం స్టాక్‌లో నిల్వ చేయబడుతుంది మరియు ఆబ్జెక్ట్ రకం కుప్ప మెమరీలో నిల్వ చేయబడుతుంది. విలువ రకాన్ని ఆబ్జెక్ట్ రకానికి మార్చడం అనేది అవ్యక్త మార్పిడి. మీరు నేరుగా ఒక వస్తువుకు విలువను కేటాయించవచ్చు మరియు C # మిగిలిన మార్పిడిని నిర్వహిస్తుంది. ఒక ఉదాహరణతో బాక్సింగ్‌ను అర్థం చేసుకుందాం.

int i = 24; వస్తువు ob = i; // పూర్ణాంక రకం n ను ఆబ్జెక్ట్ రకం ob లోకి పెట్టండి. లేదా వస్తువు ob1 = 21; // ఇక్కడ కూడా ఆబ్జెక్ట్ రకం ob1 ఒక పూర్ణాంక రకాన్ని సూచిస్తుంది

పై కోడ్‌లో, విలువ 24 కలిగి ఉన్న పూర్ణాంక రకం స్టాక్‌లో నిల్వ చేయబడుతుంది మరియు ఆబ్జెక్ట్ రకం ఓబ్‌కు కాపీ చేయబడుతుంది. ఆబ్జెక్ట్ రకం ఇప్పుడు పూర్ణాంక విలువను సూచిస్తుంది. ఇప్పుడు, “int i” లో కూడా విలువ 24 ఉంటుంది మరియు “ఆబ్జెక్ట్ టైప్ ఓబ్” లో కూడా విలువ 24 ఉంటుంది, కానీ రెండు విలువలు ఒకదానికొకటి స్వతంత్రంగా ఉంటాయి, అంటే నేను i విలువను మార్చుకుంటే, అది మార్పును ప్రతిబింబించదు ob విలువ.


బాక్సింగ్ అదనపు సమయంతో పాటు అదనపు మెమరీని వినియోగిస్తుంది. కారణం, విలువ రకాన్ని సూచించే క్రొత్త వస్తువు, కుప్పపై మెమరీ స్థలాన్ని కేటాయించాలి. తరువాత, స్టాక్‌లో నిల్వ చేయబడిన విలువ రకం విలువ హీప్ మెమరీ స్థానంలో, ఆబ్జెక్ట్ రకానికి బదిలీ చేయబడుతుంది.

అన్బాక్సింగ్ యొక్క నిర్వచనం

బాక్సింగ్ యొక్క రివర్స్ అన్బాక్సింగ్. అన్‌బాక్సింగ్ అనేది ఆబ్జెక్ట్ రకాన్ని విలువ రకానికి మార్చడం. అన్‌బాక్సింగ్‌లో కుప్పలో నిల్వ చేయబడిన బాక్స్డ్ ఆబ్జెక్ట్ రకం విలువ స్టాక్‌లో నిల్వ చేయబడిన విలువ రకానికి బదిలీ చేయబడుతుంది. బాక్సింగ్ మాదిరిగా కాకుండా, అన్‌బాక్సింగ్ స్పష్టంగా చేయాలి. ఆబ్జెక్ట్ రకం విలువ రకానికి స్పష్టంగా ప్రసారం చేయబడుతుంది మరియు విలువ రకం ఆబ్జెక్ట్ రకం సూచించే విలువకు సమానంగా ఉండాలి. అన్బాక్సింగ్ భావనను ఉదాహరణతో అర్థం చేసుకుందాం.

int i = 24; వస్తువు ob = i; // పూర్ణాంక రకం n ను ఆబ్జెక్ట్ రకం ob లోకి పెట్టండి. int j = (int) ob; // ఆబ్జెక్ట్ టైప్ ఓబ్‌లో నిల్వ చేసిన పూర్ణాంక విలువను పూర్ణాంక రకం y కు అన్‌బాక్స్ చేయండి.

ఆబ్జెక్ట్ ఓబ్‌లో నిల్వ చేయబడిన విలువ ఆబ్జెక్ట్ సూచించిన రకానికి ప్రసారం చేయడం ద్వారా తిరిగి పొందబడుతుంది, అనగా పూర్ణాంక రకం “j”.

అన్‌బాక్సింగ్ ఎక్కువ మెమరీని మరియు ఎక్కువ సమయాన్ని వినియోగిస్తుంది. కాబట్టి, ఒక వస్తువు రకాన్ని అన్‌బాక్స్ చేయవలసి వచ్చినప్పుడు, కుప్పలో నిల్వ చేయబడిన ఆబ్జెక్ట్ రకం విలువ స్టాక్‌లో నిల్వ చేయబడిన కొత్త విలువ రకానికి బదిలీ చేయబడాలి. తిరిగి పొందిన ఆబ్జెక్ట్ రకం చెత్త సేకరణ కోసం ఇప్పుడు అందుబాటులో ఉంటుంది.

  1. బాక్సింగ్‌లో, ఒక వస్తువును విలువ రకంగా సూచించడానికి తయారు చేస్తారు. మరోవైపు, బాక్స్డ్ వస్తువు నుండి విలువను తిరిగి పొందే ప్రక్రియను అన్‌బాక్సింగ్ అంటారు.
  2. స్టాక్‌లో నిల్వ చేయబడిన విలువ రకం కుప్ప మెమరీలో నిల్వ చేయబడిన వస్తువుకు కాపీ చేయబడుతుంది. మరోవైపు, అన్‌బాక్సింగ్‌లో, కుప్ప మెమరీలో నిల్వ చేయబడిన వస్తువు స్టాక్ మెమరీలో నిల్వ చేయబడిన విలువ రకానికి కాపీ చేయబడుతుంది.
  3. బాక్సింగ్ అనేది అవ్యక్త మార్పిడి అయితే, అన్‌బాక్సింగ్ అనేది స్పష్టమైన మార్పిడి.

ముగింపు:

బాక్సింగ్ మరియు అన్‌బాక్సింగ్ రెండూ ఎక్కువ సమయం మరియు జ్ఞాపకశక్తిని వినియోగిస్తాయి మరియు అవి గణనపరంగా ఖరీదైనవి. వారు టైప్ భద్రతలో కూడా లేరు మరియు రన్‌టైమ్ ఓవర్‌హెడ్‌ను పెంచుతారు. ప్రోగ్రామ్‌లో బాక్సింగ్ మరియు అన్‌బాక్సింగ్‌ను ఎక్కువగా ఉపయోగించకుండా ఉండాలని ఎల్లప్పుడూ సలహా ఇస్తారు.