सामान्य टाइप प्रणाली (सीटीएस)

Microsoft के .NET फ्रेमवर्क में, कॉमन टाइप सिस्टम (CTS) एक मानक है जो निर्दिष्ट करता है कि डेटा प्रकार की परिभाषाएँ और प्रकार के विशिष्ट मान कैसे प्रदर्शित किए जाते हैं स्मृति। इसका उद्देश्य विभिन्न प्रोग्रामिंग भाषाओं में लिखे गए कार्यक्रमों को आसानी से जानकारी साझा करने की अनुमति देना है। जैसा कि प्रोग्रामिंग भाषाओं में उपयोग किया जाता है, एक डेटा प्रकार को मानों के एक सेट की परिभाषा के रूप में वर्णित किया जा सकता है (उदाहरण के लिए, 0 और 10 के बीच सभी पूर्णांक), और उन मानों पर स्वीकार्य संचालन (उदाहरण के लिए, जोड़ और घटाव)।

सीटीएस के लिए विनिर्देश एक्मा मानक 335, सामान्य भाषा अवसंरचना (सीएलआई) विभाजन I से VI में निहित है। कॉमन लैंग्वेज इन्फ्रास्ट्रक्चर और CTS Microsoft द्वारा बनाए गए थे, और .NET Framework|Microsoft .NET फ्रेमवर्क मानक का कार्यान्वयन है।

कॉमन टाइप सिस्टम के कार्य

 * एक ऐसा ढांचा स्थापित करने के लिए जो क्रॉस-लैंग्वेज इंटीग्रेशन, टाइप सेफ्टी और हाई परफॉर्मेंस कोड एक्जीक्यूशन को सक्षम करने में मदद करता है।
 * एक वस्तु-उन्मुख मॉडल प्रदान करने के लिए जो कई प्रोग्रामिंग भाषाओं के पूर्ण कार्यान्वयन का समर्थन करता है।
 * उन नियमों को परिभाषित करने के लिए जिन्हें भाषाओं का पालन करना चाहिए, जो यह सुनिश्चित करने में मदद करता है कि विभिन्न भाषाओं में लिखी गई वस्तुएँ एक दूसरे के साथ परस्पर क्रिया कर सकती हैं।
 * सीटीएस उन नियमों को भी परिभाषित करता है जो यह सुनिश्चित करते हैं कि विभिन्न भाषाओं में लिखे गए डेटा प्रकार के ऑब्जेक्ट एक दूसरे के साथ बातचीत करने में सक्षम हैं।
 * सीटीएस प्रकार दृश्यता और प्रकार के सदस्यों तक पहुंच के लिए नियमों को भी निर्दिष्ट करता है, यानी सीटीएस नियमों को स्थापित करता है जिसके द्वारा असेंबली एक प्रकार के लिए दायरा बनाती है, और सामान्य भाषा रनटाइम दृश्यता नियमों को लागू करती है।
 * सीटीएस वंशानुक्रम टाइप करें, वर्चुअल मेथड्स और ऑब्जेक्ट लाइफटाइम को नियंत्रित करने वाले नियमों को परिभाषित करता है।
 * .NET द्वारा समर्थित भाषाएँ सभी या कुछ सामान्य डेटा प्रकारों को लागू कर सकती हैं ...

भिन्नात्मक मानों को राउंडिंग करते समय, पूरे फ्रेमवर्क में राउंडिंग#राउंड हाफ टू ईवन|हाफवे-टू-ईवन (बैंकर्स) विधि डिफ़ॉल्ट रूप से उपयोग की जाती है। संस्करण 2 के बाद से, प्रोग्रामर के विकल्प द्वारा सममित अंकगणितीय गोलाई (शून्य से आधा दूर) भी उपलब्ध है।
 * इसका उपयोग अन्य भाषाओं के साथ संवाद करने के लिए किया जाता है

टाइप श्रेणियां
सामान्य प्रकार की प्रणाली दो प्रकार की सामान्य श्रेणियों का समर्थन करती है: मूल्य प्रकार: मूल्य प्रकारों में सीधे उनका डेटा होता है, और मूल्य प्रकारों के उदाहरण या तो कॉल स्टैक पर आवंटित किए जाते हैं या संरचना में इनलाइन आवंटित किए जाते हैं। मूल्य प्रकार अंतर्निहित (रनटाइम द्वारा कार्यान्वित), उपयोगकर्ता परिभाषित, या गणना हो सकते हैं।
 * संदर्भ प्रकार: संदर्भ प्रकार मान के स्मृति पते के संदर्भ को संग्रहीत करते हैं, और गतिशील स्मृति आवंटन पर आवंटित किए जाते हैं। संदर्भ प्रकार स्व-वर्णन प्रकार, सूचक प्रकार या इंटरफ़ेस प्रकार हो सकते हैं। एक संदर्भ प्रकार का प्रकार स्व-वर्णन प्रकार के मूल्यों से निर्धारित किया जा सकता है। स्व-वर्णन प्रकार आगे सरणियों और वर्ग प्रकारों में विभाजित होते हैं। वर्ग प्रकार उपयोगकर्ता-परिभाषित वर्ग, बॉक्सिंग मूल्य प्रकार और प्रतिनिधि हैं।

Visual Basic .NET में लिखा गया निम्न उदाहरण संदर्भ प्रकारों और मान प्रकारों के बीच अंतर दिखाता है: उपरोक्त उदाहरण का आउटपुट

मान: 0, 123 संदर्भ: 123, 123

बॉक्सिंग
मूल्य प्रकारों को संदर्भ प्रकारों में परिवर्तित करना बॉक्सिंग (कंप्यूटर विज्ञान) के रूप में भी जाना जाता है। जैसा कि नीचे दिए गए उदाहरण में देखा जा सकता है, यह आवश्यक नहीं है कि कंपाइलर को Int32 को किसी वस्तु के लिए बॉक्सिंग किया जाए, क्योंकि यह स्वयं इसका ख्याल रखता है। हालाँकि, एक Int32 को हमेशा इस तरह स्पष्ट रूप से बॉक्स किया जा सकता है:

अनबॉक्सिंग
निम्न उदाहरण यह दिखाने का इरादा रखता है कि किसी संदर्भ प्रकार को मान प्रकार पर वापस कैसे अनबॉक्स किया जाए। सबसे पहले एक Int32 को किसी ऑब्जेक्ट में बॉक्स किया जाता है, और फिर इसे फिर से अनबॉक्स किया जाता है। ध्यान दें कि अनबॉक्सिंग के लिए स्पष्ट कास्ट की आवश्यकता होती है।

यह भी देखें

 * ।शुद्ध रूपरेखा
 * ब्लिटेबल प्रकार
 * सामान्य भाषा अवसंरचना

बाहरी संबंध

 * Microsoft developer's guide describing the CTS
 * Built-in types in the .NET Framework