उत्तर
सी # में ऐरे रेफरेंसियल प्रकार है इसलिए मुक्केबाजी की कोई आवश्यकता नहीं है। आप फिर भी इस उदाहरण में मुक्केबाजी होगा: मान लिया जाये कि इस सी # (var
और सी # तरह सारणी वाक्य-विन्यास) है
var i = 123;
object o = i;
, नहीं, i
बॉक्सिंग नहीं है। केवल आदिम मूल्य प्रकार (संख्यात्मक मानों को सोचें) को बॉक्स किया जा सकता है।
सरणी में मानों को या तो बॉक्स नहीं किया जाता है, क्योंकि आदिम सरणी में मान बॉक्स नहीं होते हैं।
आप किसी भी संरचना को बॉक्स कर सकते हैं, जिसमें आप स्वयं लिखते हैं, इसलिए मुक्केबाजी है इससे थोड़ा दूर तक पहुंचने का तात्पर्य है। मूल्य प्रकार .NET में structs के रूप में लागू किए जाते हैं। – Donnie
कोई बॉक्स नहीं है। Var कीवर्ड का मतलब यह नहीं है कि चर बॉक्स बॉक्स किया गया है। यह रनटाइम के दौरान कोई रूपांतरण नहीं करता है। Var कीवर्ड कड़ाई से एक सी # निर्माण है। क्या वास्तव में हो रहा है जब आप वर का उपयोग करें:
var i = new int[1];
आईएल के रूप में यह देखता है:
int[] i = new int[1]
अब अगर आप अगर आपके द्वारा की मैं इसे बॉक्स करता सरणी के भाग के लिए एक पूर्णांक आवंटित पूछ रहे हैं ?
जैसे:
i[0] = 2;
कोई ऐसा नहीं होता।
var o = new object[1];
o[0] = 2;
यह उदाहरण है और क्यों ArrayList का उपयोग कर 1.0, 1.1 (पूर्व जेनरिक) में (लगता है विस्तार योग्य सरणी) एक भारी लागत था:
यह जो करता है करने का विरोध किया है। निम्नलिखित टिप्पणी के रूप में अच्छी तरह से object[]
उदाहरण के लिए लागू होता है:
कोई संदर्भ या मान प्रकार है कि एक ArrayList में जोड़ा वस्तु को परोक्ष Upcast है। यदि आइटम मान प्रकार हैं, तो उन्हें सूची में जोड़ा गया है, और पर उन्हें अनबॉक्स किए जाने पर उन्हें बॉक्स किया जाना चाहिए। दोनों कास्टिंग और मुक्केबाजी और अनबॉक्सिंग ऑपरेशंस प्रदर्शन को घटाएं; का प्रभाव मुक्केबाजी और अनबॉक्सिंग काफी परिदृश्यों में महत्वपूर्ण हो सकता है जहां आप बड़े संग्रहों पर पुन: प्रयास करना चाहिए।
मुक्केबाजी केवल जब एक value type (अर्थात एक आदिम प्रकार, struct या गणन) एक संदर्भ प्रकार के रूप में इलाज चल रहा है होता है। आपकी सरणी को int
प्रकार के मान रखने के लिए घोषित किया गया है। var
keyword केवल मैन्युअल रूप से निर्दिष्ट करने के बजाय, परिवर्तनीय i
के प्रकार का अनुमान लगाने के लिए संकलक को बताता है।
आप लिखा था:
var i = new object[2];
संकलक object[] i = new object[2]
है कि अनुवाद होगा, और किसी भी int
मूल्यों तुम वहाँ में डाल बॉक्सिंग की जाएगी। आपके द्वारा उसी सरणी में डाले गए किसी भी संदर्भ प्रकार को किसी भी मुक्केबाजी की आवश्यकता नहीं होगी।
संक्षेप में, var
में मुक्केबाजी के साथ कुछ लेना देना नहीं है।
यहां .NET में diagram of different types है। आप .NET Type fundamentals पढ़ना भी चाह सकते हैं।
- 1. बॉक्सिंग/अनबॉक्सिंग और निरर्थक?
- 2. बॉक्सिंग और अनबॉक्सिंग भी कास्टिंग है?
- 3. बॉक्सिंग और अनबॉक्सिंग: यह कब आता है?
- 4. कुछ भाषाओं को बॉक्सिंग और अनबॉक्सिंग की आवश्यकता क्यों है?
- 5. बॉक्सिंग प्राइमेटिव्स और समतुल्यता
- 6. अनबॉक्सिंग, (स्पैस) मैट्रिस, और हैकेल वेक्टर लाइब्रेरी
- 7. सी # - गतिशील पैरामीटर बॉक्सिंग
- 8. प्राइमेटिव्स का ऑटो बॉक्सिंग
- 9. अनबॉक्सिंग या toString() जावा
- 10. अनबॉक्सिंग मान प्रकार
- 11. मुक्केबाजी और अनबॉक्सिंग क्या है और व्यापार बंद क्या हैं?
- 12. अनबॉक्सिंग uint/जानने क्या बॉक्स के अंदर है बिना पूर्णांक
- 13. मुक्केबाजी और अनबॉक्सिंग, "System.Object" दोनों आउटपुट क्यों नहीं हैं?
- 14. कनवर्टिंग और अनबॉक्सिंग के बीच क्या अंतर है?
- 15. क्या मुक्केबाजी और अनबॉक्सिंग में समान प्रदर्शन होता है?
- 16. मुक्केबाजी/अनबॉक्सिंग और टाइप कास्टिंग के बीच क्या अंतर है?
- 17. क्या ये मुक्केबाजी/अनबॉक्सिंग उदाहरण हैं
- 18. क्या सभी सी # का परिणाम मुक्केबाजी/अनबॉक्सिंग
- 19. .NET मुक्केबाजी/अनबॉक्सिंग बनाम कास्टिंग प्रदर्शन
- 20. Nullable <T> के मुक्केबाजी/अनबॉक्सिंग व्यवहार को कैसे संभव है?
- 21. एक बॉक्सिंग पूर्णांक कास्ट करने के लिए बाइट के लिए
- 22. एक विधि के ओवरलोडिंग में बॉक्सिंग और var-args दोनों को क्यों बढ़ाता है?
- 23. बॉक्सिंग द्वारा उलझन में। कास्टिंग -1 से इंट 64 फेंक देता है अमान्य कैस्टएक्सप्शन
- 24. जावा: इंटीजर अनबॉक्सिंग करते समय शून्य सूचक अपवाद?
- 25. एक अशक्त बॉक्स्ड वस्तु अनबॉक्सिंग फेंकता अप्रत्याशित NullPointerException
- 26. बॉक्स किए गए मान प्रकारों का सामान्य अनबॉक्सिंग
- 27. अनबॉक्सिंग एनम्स क्यों अजीब परिणाम उत्पन्न करता है?
- 28. एक विघटित स्कैला कोड में मुक्केबाजी/अनबॉक्सिंग को कैसे पहचानें?
- 29. सामान्य प्रकार के मूल्य को बॉक्सिंग के बिना डबल करने के लिए कैसे करें?
- 30. मूल्य प्रकार कहां संग्रहीत हैं (सी #) जेनेरिक संग्रह
कौन सी भाषा? सी#? – kennytm
सी # भाषा में .. – Vivek
@MarkRushakoff :) मुझे पता है कि यह एक पुरानी पोस्ट है, लेकिन मैंने अपने गधे को हँसे, वास्तव में कुछ कॉफी बिछाया :)) –