सी # मधील बॉक्सिंग आणि अनबॉक्सिंग दरम्यान फरक
सामग्री
सी # मध्ये सर्व मूल्य प्रकार श्रेणी ऑब्जेक्ट मधून घेतले आहेत. तर टाइप ऑब्जेक्टचा संदर्भ व्हेरिएबल इतर कोणत्याही व्हॅल्यू टाइपचा संदर्भ घेऊ शकतो. सी # बॉक्सिंग आणि अनबॉक्सिंगमध्ये दोन पद्धती सादर करते, जे मूल्य प्रकारास संदर्भ प्रकाराशी जोडते. बॉक्सिंग आणि अनबॉक्सिंग मधील मूलभूत फरक म्हणजे बॉक्सिंग म्हणजे मूल्य प्रकाराचे ऑब्जेक्ट प्रकारात रूपांतरण होय तर दुसरीकडे, अनबॉक्सिंग हा शब्द ऑब्जेक्ट प्रकाराचे मूल्य प्रकारात रूपांतरण होय. बॉक्सिंग आणि अनबॉक्सिंगमधील इतर फरकांचा अभ्यास करूया.
- तुलना चार्ट
- व्याख्या
- मुख्य फरक
- निष्कर्ष
तुलना चार्ट
तुलनासाठी आधार | बॉक्सिंग | अनबॉक्सिंग |
---|---|---|
मूलभूत | ऑब्जेक्ट प्रकार म्हणजे मूल्य प्रकार होय. | बॉक्स केलेल्या ऑब्जेक्टमधून मूल्य पुनर्प्राप्त करण्याची प्रक्रिया. |
साठवण | स्टॅकवर संग्रहित मूल्य हीप मेमरीवर संग्रहित ऑब्जेक्टवर कॉपी केले जाते. | हेप मेमरीवर संग्रहित ऑब्जेक्ट्स मूल्य स्टॅकवर संग्रहित मूल्य प्रकारावर कॉपी केले जाते. |
रूपांतरण | अप्रत्यक्ष रूपांतरण. | स्पष्ट रूपांतरण. |
उदाहरण | इंट एन = 24; ऑब्जेक्ट ob = n; | इंट एम = (इंट) ओबी; |
बॉक्सिंग व्याख्या
बॉक्सिंग ही मूल्य प्रकाराला ऑब्जेक्ट प्रकारात रूपांतरित करण्याची प्रक्रिया असते. येथे मूल्य प्रकार स्टॅकवर संग्रहित केला जाईल आणि ऑब्जेक्ट प्रकार हीप मेमरीमध्ये संग्रहित केला जाईल. ऑब्जेक्ट प्रकारात मूल्य प्रकाराचे हे रूपांतरण अंतर्निहित रूपांतरण आहे. आपण ऑब्जेक्टला थेट मूल्य प्रदान करू शकता आणि उर्वरित रूपांतरण सी # हाताळेल. चला उदाहरण देऊन बॉक्सिंग समजू.
इंट i = 24; ऑब्जेक्ट ob = i; // ऑब्जेक्ट प्रकार ओबी मध्ये पूर्णांक एन बॉक्स करा. किंवा ऑब्जेक्ट ob1 = 21; // येथे देखील ऑब्जेक्ट प्रकार ob1 पूर्णांक प्रकार संदर्भित करते
वरील कोडमध्ये, पूर्णांक प्रकार i ची संख्या 24 स्टॅकवर संग्रहित केली जाते आणि ऑब्जेक्ट टाइप ओबीवर कॉपी केली जाते. ऑब्जेक्ट प्रकार आता पूर्णांक मूल्याचा संदर्भ देत आहे. आता “इंट आय” मध्ये व्हॅल्यू 24 आणि “ऑब्जेक्ट टाईप ओबी” मध्येही व्हॅल्यू 24 असते, परंतु दोन्ही व्हॅल्यूज एकमेकापासून स्वतंत्र असतात म्हणजेच जर तुम्ही i ची व्हॅल्यू बदलली तर ते त्यातील बदल दर्शवत नाही. ओबीचे मूल्य
बॉक्सिंग अतिरिक्त वेळेसह अतिरिक्त मेमरी वापरते. कारण असे आहे की नवीन ऑब्जेक्ट, जे मूल्य प्रकारास संदर्भ देईल, त्याला ढीगवर मेमरी स्पेस वाटप करणे आवश्यक आहे. पुढे, स्टॅकवर संग्रहित मूल्य प्रकाराचे मूल्य हीप मेमरी स्थानावरील ऑब्जेक्ट प्रकार ओबमध्ये हस्तांतरित केले जाईल.
अनबॉक्सिंग ची व्याख्या
बॉक्सिंगचा उलटा अनबॉक्सिंग आहे. अनबॉक्सिंग ऑब्जेक्ट प्रकाराचे मूल्य प्रकारात रूपांतरण होते. अनबॉक्सिंगमध्ये ढीगवर संग्रहित बॉक्सिंग ऑब्जेक्ट प्रकाराचे मूल्य स्टॅकवर संग्रहित केलेल्या मूल्य प्रकारात हस्तांतरित केले जाते. बॉक्सिंगच्या विपरीत, अनबॉक्सिंग स्पष्टपणे केले जावे. ऑब्जेक्टचा प्रकार मूल्य प्रकारासाठी स्पष्टपणे टाकला जातो आणि मूल्य प्रकार ऑब्जेक्टचा संदर्भ देत असलेल्या मूल्यासारखेच असणे आवश्यक आहे. चला उदाहरणासह अनबॉक्सिंगची संकल्पना समजू या.
इंट i = 24; ऑब्जेक्ट ob = i; // ऑब्जेक्ट प्रकार ओबी मध्ये पूर्णांक एन बॉक्स करा. इंट जे = (इंट) ओबी; // ऑब्जेक्ट प्रकार मध्ये संचयित पूर्णांक मूल्य y ते पूर्णांक y.
ऑब्जेक्ट ओबमध्ये संग्रहित केलेले मूल्य ऑब्जेक्ट म्हणजेच पूर्णांक प्रकार “जे” संदर्भित असलेल्या प्रकारात टाकून ते पुनर्प्राप्त केले जाते.
अनबॉक्सिंगमध्ये अधिक मेमरी आणि अधिक वेळही लागतो. जेव्हा एखादी ऑब्जेक्ट प्रकार अनबॉक्स करावा लागतो तेव्हा ढीगवर संग्रहित ऑब्जेक्ट प्रकाराचे मूल्य स्टॅकवर संग्रहित नवीन मूल्य प्रकारात हस्तांतरित करावे लागते. ज्याचे मूल्य पुनर्प्राप्त केले गेले आहे त्याचे ऑब्जेक्ट प्रकार आता कचरा उचलण्यासाठी उपलब्ध असतील.
- बॉक्सिंगमध्ये एखादी वस्तू व्हॅल्यू टाइप म्हणून दर्शविली जाते. दुसरीकडे, बॉक्स केलेल्या ऑब्जेक्टमधून मूल्य परत मिळविण्याच्या प्रक्रियेस अनबॉक्सिंग म्हणतात.
- स्टॅकवर संग्रहित मूल्य प्रकार हेप मेमरीवर संग्रहित ऑब्जेक्टवर कॉपी केला जातो. दुसरीकडे, अनबॉक्सिंगमध्ये, हीप मेमरीवर संग्रहित ऑब्जेक्टची स्टॅक मेमरीवर संग्रहित मूल्य प्रकारावर कॉपी केली जाते.
- बॉक्सिंग एक अंतर्निहित रूपांतरण आहे तर, अनबॉक्सिंग हे एक स्पष्ट रूपांतरण आहे.
निष्कर्ष:
बॉक्सिंग आणि अनबॉक्सिंग दोन्ही अधिक वेळ आणि मेमरी वापरतात आणि ते संगणकीयदृष्ट्या महाग असतात. त्यांच्याकडे प्रकारची सुरक्षितता देखील नसते आणि रनटाइम ओव्हरहेड वाढते. कार्यक्रमात बॉक्सिंग आणि अनबॉक्सिंगचा जास्त वापर टाळण्यासाठी नेहमीच सल्ला दिला जातो.