मुझे पता है कि structs, उदा। Int32, मूल्य प्रकार हैं और स्टैक पर तत्काल होते हैं जबकि कक्षा संदर्भ प्रकार होते हैं और ढेर पर तत्काल होते हैं।
आपको लगता है कि पता नहीं है, क्योंकि क्रम में ज्ञान रूप में वर्गीकृत करने एक विश्वास सच होना चाहिए। यह विश्वास निश्चित रूप से सच नहीं है, हालांकि कई लोग इसे मानते हैं।
मूल्य प्रकार कभी-कभी स्टैक पर आवंटित किए जाते हैं। संदर्भ कभी-कभी स्टैक पर आवंटित किए जाते हैं और ढेर पर आवंटित स्मृति का संदर्भ लें। मूल्य प्रकार कभी-कभी ढेर पर आवंटित होते हैं। (और निश्चित रूप से मूल्य प्रकार और संदर्भ भी रजिस्टरों जो न तो ढेर है और न ही ढेर कर रहे हैं में आवंटित किया जा सकता है।)
क्या निर्धारित करता है क्या भंडारण ढेर पर आवंटित किया जाता है और क्या ढेर पर आवंटित किया जाता है में जाना जाता है जीवन की आवश्यकताओं है भंडारण, किस प्रकार की बात है। यदि एक चर को अल्पकालिक माना जाता है तो इसे ढेर पर आवंटित किया जा सकता है; यदि यह अल्पकालिक होने के लिए ज्ञात नहीं है तो इसे ढेर पर आवंटित किया जाना चाहिए।
मुझे यह भी पता है कि सभी structs System.Object प्रकार से प्राप्त किए गए हैं, जो एक वर्ग है। मुझे आश्चर्य है कि यह कैसे संभव है कि supertype, System.Object, एक संदर्भ प्रकार है और उप प्रकार, Int32, एक मान प्रकार है?
मुझे संदेह है कि आपको यह समझ में नहीं आता कि "विरासत से" क्या मतलब है यदि यह आपको भ्रमित कर रहा है। जब हम कहते हैं कि System.Int32, एक मान प्रकार, सिस्टम से प्राप्त होता है। ऑब्जेक्ट, एक संदर्भ प्रकार, हमारा मतलब है कि ऑब्जेक्ट के सभी सदस्य Int32 के सदस्य भी हैं। ऑब्जेक्ट में "ToString" विधि है। वह ऑब्जेक्ट का सदस्य है। इसलिए Int32 में "ToString" विधि भी है, क्योंकि Int32 ऑब्जेक्ट से प्राप्त होता है।
है कि विरासत का अर्थ है। मुझे संदेह है कि आप मानते हैं कि विरासत का मतलब कुछ और है, और जो कुछ भी "कुछ" संदर्भ प्रकारों को विस्तारित करने से मूल्य प्रकारों को रोकता है। आपके पास जो भी विश्वास है जो आपको लगता है कि मान प्रकार संदर्भ प्रकारों से प्राप्त नहीं हो सकते हैं स्पष्ट रूप से झूठी है, क्योंकि जाहिर है कि वे करते हैं।
मुझे यह जानने में दिलचस्पी है कि लोग प्रोग्रामिंग भाषाओं के बारे में क्या झूठी बातें मानते हैं; यह क्या है कि आपको लगता है कि विरासत संबंधों के बारे में गलत है जो मूल्य प्रकारों को संदर्भ प्रकारों से प्राप्त करने से रोक देगा?
आप पढ़ सकते हैं और ये सभी लेख को समझना चाहिए:
http://blogs.msdn.com/b/ericlippert/archive/2009/04/27/the-stack-is-an-implementation-detail.aspx
http://blogs.msdn.com/b/ericlippert/archive/2009/05/04/the-stack-is-an-implementation-detail-part-two.aspx
http://blogs.msdn.com/b/ericlippert/archive/2010/09/30/the-truth-about-value-types.aspx
http://ericlippert.com/2011/09/19/inheritance-and-representation/
और अतिरिक्त बोनस, यह एक भी आप के लिए उपयोगी हो सकता है :
http://blogs.msdn.com/b/ericlippert/archive/2012/01/16/what-is-the-defining-characteristic-of-a-local-variable.aspx
संबंधित पढ़ने: [ढेर एक कार्यान्वयन विस्तार है] (http://blogs.msdn.com/b/ericlippert/archive/2009/04/27/the-stack-is-an-implementation -detail.aspx) – Heinzi
http://stackoverflow.com/questions/1682231/how-do-valuetypes-derive-from-object-referencetype-and-still-be-valuetypes – daryal
का संभावित डुप्लिकेट यह संकलक –