सामान्य टाइप प्रणाली (सीटीएस): Difference between revisions
(Created page with "{{Technical|date=August 2009}} Microsoft के .NET फ्रेमवर्क में, कॉमन टाइप सिस्टम (CTS) एक मानक है ज...") |
No edit summary |
||
Line 1: | Line 1: | ||
माइक्रोसॉफ्ट के .नेट फ्रेमवर्क में, '''सामान्य टाइप प्रणाली (सीटीएस)''' एक मानक है जो निर्दिष्ट करता है कि कंप्यूटर मेमोरी में टाइप परिभाषा तथा विशेष प्रकार के मान कैसे प्रतिष्ठित किए जाते हैं। इसका उद्देश्य विभिन्न [[प्रोग्रामिंग भाषा]]ओं में लिखे गए प्रोग्रामों को सरलता से जानकारी साझा करने की अनुमति देना है। प्रोग्रामिंग भाषाओं में, टाइप को, मानों के वर्ग; उदाहरण के लिए, "0 से 10 तक के सभी पूर्णांक" तथा उन मानों पर संभव संक्रियाओं; उदाहरण के लिए, जोड़ने और घटाने के अनुमति की परिभाषा के रूप में वर्णित किया जा सकता है। | |||
सीटीएस के लिए विनिर्देश एक्मा मानक 335, [[सामान्य भाषा अवसंरचना]] (सीएलआई) विभाजन I से VI में निहित है। कॉमन लैंग्वेज इन्फ्रास्ट्रक्चर और | सीटीएस के लिए विनिर्देश एक्मा मानक 335, [[सामान्य भाषा अवसंरचना]] (सीएलआई) विभाजन I से VI में निहित है। कॉमन लैंग्वेज इन्फ्रास्ट्रक्चर और सीटीएस माइक्रोसॉफ्ट द्वारा निर्मित किए गए थे, तथा .नेट फ्रेमवर्क, इसी मानक का कार्यान्वयन है। | ||
== कॉमन टाइप सिस्टम के कार्य == | == कॉमन टाइप सिस्टम के कार्य == | ||
Line 12: | Line 10: | ||
* सीटीएस प्रकार दृश्यता और प्रकार के सदस्यों तक पहुंच के लिए नियमों को भी निर्दिष्ट करता है, यानी सीटीएस नियमों को स्थापित करता है जिसके द्वारा असेंबली एक प्रकार के लिए दायरा बनाती है, और सामान्य भाषा रनटाइम दृश्यता नियमों को लागू करती है। | * सीटीएस प्रकार दृश्यता और प्रकार के सदस्यों तक पहुंच के लिए नियमों को भी निर्दिष्ट करता है, यानी सीटीएस नियमों को स्थापित करता है जिसके द्वारा असेंबली एक प्रकार के लिए दायरा बनाती है, और सामान्य भाषा रनटाइम दृश्यता नियमों को लागू करती है। | ||
* सीटीएस [[ वंशानुक्रम टाइप करें ]], वर्चुअल मेथड्स और ऑब्जेक्ट लाइफटाइम को नियंत्रित करने वाले नियमों को परिभाषित करता है। | * सीटीएस [[ वंशानुक्रम टाइप करें ]], वर्चुअल मेथड्स और ऑब्जेक्ट लाइफटाइम को नियंत्रित करने वाले नियमों को परिभाषित करता है। | ||
* . | * .नेट द्वारा समर्थित भाषाएँ सभी या कुछ सामान्य डेटा प्रकारों को लागू कर सकती हैं ... | ||
भिन्नात्मक मानों को राउंडिंग करते समय, पूरे फ्रेमवर्क में राउंडिंग#राउंड हाफ टू ईवन|हाफवे-टू-ईवन (बैंकर्स) विधि डिफ़ॉल्ट रूप से उपयोग की जाती है। संस्करण 2 के बाद से, प्रोग्रामर के विकल्प द्वारा सममित अंकगणितीय [[गोलाई]] (शून्य से आधा दूर) भी उपलब्ध है।<ref>{{cite web | url = https://docs.microsoft.com/en-us/dotnet/api/system.midpointrounding | title = मिडपॉइंट राउंडिंग एन्यूमरेशन| work = [[Microsoft Docs]]}}</ref> | भिन्नात्मक मानों को राउंडिंग करते समय, पूरे फ्रेमवर्क में राउंडिंग#राउंड हाफ टू ईवन|हाफवे-टू-ईवन (बैंकर्स) विधि डिफ़ॉल्ट रूप से उपयोग की जाती है। संस्करण 2 के बाद से, प्रोग्रामर के विकल्प द्वारा सममित अंकगणितीय [[गोलाई]] (शून्य से आधा दूर) भी उपलब्ध है।<ref>{{cite web | url = https://docs.microsoft.com/en-us/dotnet/api/system.midpointrounding | title = मिडपॉइंट राउंडिंग एन्यूमरेशन| work = [[Microsoft Docs]]}}</ref> | ||
Line 22: | Line 20: | ||
;[[संदर्भ प्रकार]]: संदर्भ प्रकार मान के स्मृति पते के संदर्भ को संग्रहीत करते हैं, और [[गतिशील स्मृति आवंटन]] पर आवंटित किए जाते हैं। संदर्भ प्रकार स्व-वर्णन प्रकार, सूचक प्रकार या इंटरफ़ेस प्रकार हो सकते हैं। एक संदर्भ प्रकार का प्रकार स्व-वर्णन प्रकार के मूल्यों से निर्धारित किया जा सकता है। स्व-वर्णन प्रकार आगे सरणियों और वर्ग प्रकारों में विभाजित होते हैं। वर्ग प्रकार उपयोगकर्ता-परिभाषित वर्ग, बॉक्सिंग मूल्य प्रकार और प्रतिनिधि हैं। | ;[[संदर्भ प्रकार]]: संदर्भ प्रकार मान के स्मृति पते के संदर्भ को संग्रहीत करते हैं, और [[गतिशील स्मृति आवंटन]] पर आवंटित किए जाते हैं। संदर्भ प्रकार स्व-वर्णन प्रकार, सूचक प्रकार या इंटरफ़ेस प्रकार हो सकते हैं। एक संदर्भ प्रकार का प्रकार स्व-वर्णन प्रकार के मूल्यों से निर्धारित किया जा सकता है। स्व-वर्णन प्रकार आगे सरणियों और वर्ग प्रकारों में विभाजित होते हैं। वर्ग प्रकार उपयोगकर्ता-परिभाषित वर्ग, बॉक्सिंग मूल्य प्रकार और प्रतिनिधि हैं। | ||
Visual Basic . | Visual Basic .नेट में लिखा गया निम्न उदाहरण संदर्भ प्रकारों और [[मान प्रकार]]ों के बीच अंतर दिखाता है: | ||
<syntaxhighlight lang="vbnet"> | <syntaxhighlight lang="vbnet"> | ||
Imports System | Imports System | ||
Line 84: | Line 82: | ||
==बाहरी संबंध== | ==बाहरी संबंध== | ||
*[https://msdn.microsoft.com/en-us/library/zcx1eb1e(v=vs.110).aspx | *[https://msdn.microsoft.com/en-us/library/zcx1eb1e(v=vs.110).aspx माइक्रोसॉफ्ट developer's guide describing the CTS] | ||
*[https://msdn.microsoft.com/en-us/library/hfa3fa08(v=vs.110).aspx Built-in types in the . | *[https://msdn.microsoft.com/en-us/library/hfa3fa08(v=vs.110).aspx Built-in types in the .नेट Framework] | ||
{{.NET}} | {{.NET}} |
Revision as of 00:54, 24 June 2023
माइक्रोसॉफ्ट के .नेट फ्रेमवर्क में, सामान्य टाइप प्रणाली (सीटीएस) एक मानक है जो निर्दिष्ट करता है कि कंप्यूटर मेमोरी में टाइप परिभाषा तथा विशेष प्रकार के मान कैसे प्रतिष्ठित किए जाते हैं। इसका उद्देश्य विभिन्न प्रोग्रामिंग भाषाओं में लिखे गए प्रोग्रामों को सरलता से जानकारी साझा करने की अनुमति देना है। प्रोग्रामिंग भाषाओं में, टाइप को, मानों के वर्ग; उदाहरण के लिए, "0 से 10 तक के सभी पूर्णांक" तथा उन मानों पर संभव संक्रियाओं; उदाहरण के लिए, जोड़ने और घटाने के अनुमति की परिभाषा के रूप में वर्णित किया जा सकता है।
सीटीएस के लिए विनिर्देश एक्मा मानक 335, सामान्य भाषा अवसंरचना (सीएलआई) विभाजन I से VI में निहित है। कॉमन लैंग्वेज इन्फ्रास्ट्रक्चर और सीटीएस माइक्रोसॉफ्ट द्वारा निर्मित किए गए थे, तथा .नेट फ्रेमवर्क, इसी मानक का कार्यान्वयन है।
कॉमन टाइप सिस्टम के कार्य
- एक ऐसा ढांचा स्थापित करने के लिए जो क्रॉस-लैंग्वेज इंटीग्रेशन, टाइप सेफ्टी और हाई परफॉर्मेंस कोड एक्जीक्यूशन को सक्षम करने में मदद करता है।
- एक वस्तु-उन्मुख मॉडल प्रदान करने के लिए जो कई प्रोग्रामिंग भाषाओं के पूर्ण कार्यान्वयन का समर्थन करता है।
- उन नियमों को परिभाषित करने के लिए जिन्हें भाषाओं का पालन करना चाहिए, जो यह सुनिश्चित करने में मदद करता है कि विभिन्न भाषाओं में लिखी गई वस्तुएँ एक दूसरे के साथ परस्पर क्रिया कर सकती हैं।
- सीटीएस उन नियमों को भी परिभाषित करता है जो यह सुनिश्चित करते हैं कि विभिन्न भाषाओं में लिखे गए डेटा प्रकार के ऑब्जेक्ट एक दूसरे के साथ बातचीत करने में सक्षम हैं।
- सीटीएस प्रकार दृश्यता और प्रकार के सदस्यों तक पहुंच के लिए नियमों को भी निर्दिष्ट करता है, यानी सीटीएस नियमों को स्थापित करता है जिसके द्वारा असेंबली एक प्रकार के लिए दायरा बनाती है, और सामान्य भाषा रनटाइम दृश्यता नियमों को लागू करती है।
- सीटीएस वंशानुक्रम टाइप करें , वर्चुअल मेथड्स और ऑब्जेक्ट लाइफटाइम को नियंत्रित करने वाले नियमों को परिभाषित करता है।
- .नेट द्वारा समर्थित भाषाएँ सभी या कुछ सामान्य डेटा प्रकारों को लागू कर सकती हैं ...
भिन्नात्मक मानों को राउंडिंग करते समय, पूरे फ्रेमवर्क में राउंडिंग#राउंड हाफ टू ईवन|हाफवे-टू-ईवन (बैंकर्स) विधि डिफ़ॉल्ट रूप से उपयोग की जाती है। संस्करण 2 के बाद से, प्रोग्रामर के विकल्प द्वारा सममित अंकगणितीय गोलाई (शून्य से आधा दूर) भी उपलब्ध है।[1]
- इसका उपयोग अन्य भाषाओं के साथ संवाद करने के लिए किया जाता है
टाइप श्रेणियां
सामान्य प्रकार की प्रणाली दो प्रकार की सामान्य श्रेणियों का समर्थन करती है: मूल्य प्रकार: मूल्य प्रकारों में सीधे उनका डेटा होता है, और मूल्य प्रकारों के उदाहरण या तो कॉल स्टैक पर आवंटित किए जाते हैं या संरचना में इनलाइन आवंटित किए जाते हैं। मूल्य प्रकार अंतर्निहित (रनटाइम द्वारा कार्यान्वित), उपयोगकर्ता परिभाषित, या गणना हो सकते हैं।
- संदर्भ प्रकार
- संदर्भ प्रकार मान के स्मृति पते के संदर्भ को संग्रहीत करते हैं, और गतिशील स्मृति आवंटन पर आवंटित किए जाते हैं। संदर्भ प्रकार स्व-वर्णन प्रकार, सूचक प्रकार या इंटरफ़ेस प्रकार हो सकते हैं। एक संदर्भ प्रकार का प्रकार स्व-वर्णन प्रकार के मूल्यों से निर्धारित किया जा सकता है। स्व-वर्णन प्रकार आगे सरणियों और वर्ग प्रकारों में विभाजित होते हैं। वर्ग प्रकार उपयोगकर्ता-परिभाषित वर्ग, बॉक्सिंग मूल्य प्रकार और प्रतिनिधि हैं।
Visual Basic .नेट में लिखा गया निम्न उदाहरण संदर्भ प्रकारों और मान प्रकारों के बीच अंतर दिखाता है:
Imports System
Class Class1
Public Value As Integer = 0
End Class 'Class1
Class Test
Shared Sub Main()
Dim val1 As Integer = 0
Dim val2 As Integer = val1
val2 = 123
Dim ref1 As New Class1()
Dim ref2 As Class1 = ref1
ref2.Value = 123
Console.WriteLine("Values: {0}, {1}", val1, val2)
Console.WriteLine("Refs: {0}, {1}", ref1.Value, ref2.Value)
End Sub 'Main
End Class 'Test
उपरोक्त उदाहरण का आउटपुट
मान: 0, 123 संदर्भ: 123, 123
बॉक्सिंग और अनबॉक्सिंग
बॉक्सिंग
मूल्य प्रकारों को संदर्भ प्रकारों में परिवर्तित करना बॉक्सिंग (कंप्यूटर विज्ञान) के रूप में भी जाना जाता है। जैसा कि नीचे दिए गए उदाहरण में देखा जा सकता है, यह आवश्यक नहीं है कि कंपाइलर को Int32 को किसी वस्तु के लिए बॉक्सिंग किया जाए, क्योंकि यह स्वयं इसका ख्याल रखता है।
Int32 x = 10;
object o = x ; // Implicit boxing
Console.WriteLine("The Object o = {0}",o); // prints out "The Object o = 10"
हालाँकि, एक Int32 को हमेशा इस तरह स्पष्ट रूप से बॉक्स किया जा सकता है:
Int32 x = 10;
object o = (object) x; // Explicit boxing
Console.WriteLine("The object o = {0}",o); // prints out "The object o = 10"
अनबॉक्सिंग
निम्न उदाहरण यह दिखाने का इरादा रखता है कि किसी संदर्भ प्रकार को मान प्रकार पर वापस कैसे अनबॉक्स किया जाए। सबसे पहले एक Int32 को किसी ऑब्जेक्ट में बॉक्स किया जाता है, और फिर इसे फिर से अनबॉक्स किया जाता है। ध्यान दें कि अनबॉक्सिंग के लिए स्पष्ट कास्ट की आवश्यकता होती है।
Int32 x = 5;
object o1 = x; // Implicit Boxing
x = (int)o1; // Explicit Unboxing
यह भी देखें
- ।शुद्ध रूपरेखा
- ब्लिटेबल प्रकार
- सामान्य भाषा अवसंरचना
संदर्भ