संकलक विधानसभा मेटाडेटा में निरंतर मान क्यों संग्रहीत करता है? क्या वे सीधे विधानसभा मेटाडेटा से इंटरमीडिएट भाषा कोड के लिए एम्बेडेड हैं?
संकलक विधानसभा मेटाडेटा में निरंतर मान क्यों संग्रहीत करता है? क्या वे सीधे विधानसभा मेटाडेटा से इंटरमीडिएट भाषा कोड के लिए एम्बेडेड हैं?
जवाबों:
इसके बारे में सोचने का सबसे अच्छा तरीका मुझे लगता है: संकलन के समय एक कास्ट को शाब्दिक रूप में परिवर्तित किया जाता है जहां इसका उपयोग किया जाता है।
एकमात्र कारण यह विधानसभा में प्रकट में जाता है जिसे इसे उपभोक्ताओं के लिए सुलभ बनाने के लिए परिभाषित किया गया था। यह एक दिए गए प्रकार का एक हिस्सा है और उस प्रकार का मेटाडेटा इसे असेंबली में संग्रहीत किया जाता है, न कि असेंबली जो इसका उपभोग करते हैं।
तो, यह खपत में एक इन-लाइन शाब्दिक है, और मेटाडेटा में एक उपभोज्य प्रकार-संलग्न संपत्ति या क्षेत्र है।
मुझे लगता है कि आप दो विधानसभाओं को मिलाते हैं।
स्थिरांक को केवल विधानसभा में मेटाडेटा में संग्रहीत किया जाता है जहां इसे परिभाषित किया गया है । मेटाडेटा में एक विधानसभा में सभी प्रकार और सदस्यों के बारे में जानकारी होती है और स्थिरांक सदस्य होते हैं।
निरंतर के बारे में कोई जानकारी विधानसभा में संग्रहीत नहीं की जाती है जहां इसका उपयोग किया जाता है । निरंतर मान का उपयोग सीधे IL में किया जाता है जैसे कि आपने निरंतर संख्या या स्ट्रिंग को सीधे स्रोत में लिखा था।
एक उदाहरण: मेरे अनुप्रयोगों में से एक डेटाबेस तालिकाओं और क्षेत्रों की पहचान करने के लिए बहुत सारे स्थिरांक का उपयोग करता है। मेरे पास एक असेंबली है जिसमें केवल सभी स्थिरांक हैं।
जब मैं एप्लिकेशन का निर्माण करता हूं तो मैं विजुअल स्टूडियो में "स्थिरांक" असेंबली का संदर्भ जोड़ता हूं। चूंकि विधानसभा में केवल स्थिरांक होते हैं इसलिए मेरे आवेदन में इसका कोई संदर्भ नहीं है और रन-टाइम पर "स्थिरांक" विधानसभा की आवश्यकता नहीं है।
लगातार संकलन समय पर जाना जाता है और फिर उन्हें विधानसभा के मेटाडेटा में संग्रहीत किया जाता है। इसका मतलब यह है कि आप केवल आदिम प्रकारों के लिए स्थिरांक को परिभाषित कर सकते हैं।
हाँ, वे सीधे मेटाडेटा से लोड होते हैं। रनटाइम के दौरान मेमोरी आवंटन नहीं होगा।