जवाबों:
सभी भाषाओं में अहस्ताक्षरित किलों की अवधारणा नहीं है। उदाहरण के लिए VB 6 में अहस्ताक्षरित किलों की कोई अवधारणा नहीं थी, जो मुझे संदेह है कि VB7 / 7.1 के डिजाइनरों ने निर्णय लिया कि वे इसे लागू न करें (यह अब VB8 में लागू है)।
उद्धरण के लिए:
http://msdn.microsoft.com/en-us/library/12a7a7h3.aspx
सीएलएस को काफी हद तक डिज़ाइन किया गया था ताकि वे भाषा निर्माण शामिल कर सकें जो आमतौर पर डेवलपर्स द्वारा आवश्यक होते हैं, फिर भी काफी छोटे होते हैं कि अधिकांश भाषाएं इसका समर्थन करने में सक्षम होती हैं। इसके अलावा, किसी भी भाषा का निर्माण जो कोड के प्रकार की सुरक्षा को तेजी से सत्यापित करना असंभव बनाता है, सीएलएस से बाहर रखा गया था, ताकि सभी सीएलएस-अनुपालन वाली भाषाएं सत्यापन योग्य कोड का उत्पादन कर सकें यदि वे ऐसा करना चुनते हैं।
अद्यतन: मैंने कुछ साल पहले इस बारे में आश्चर्य किया था, और जब तक मैं यह नहीं देख सकता कि एक यूआईएनटी सुरक्षा सत्यापन योग्य क्यों नहीं होगा, मुझे लगता है कि सीएलएस लोगों को कहीं न कहीं एक कट ऑफ प्वाइंट रखना पड़ता था कि आधारभूत न्यूनतम क्या होगा समर्थित मूल्य प्रकारों की संख्या। जब आप दीर्घावधि के बारे में सोचते हैं, जहां सीएलआर के लिए अधिक से अधिक भाषाओं को पोर्ट किया जा रहा है, तो उन्हें सीएलएस अनुपालन हासिल करने के लिए अहस्ताक्षरित ints को लागू करने के लिए क्यों मजबूर किया जाता है अगर कोई अवधारणा नहीं है, कभी?
इस मुद्दे का एक हिस्सा, मुझे संदेह है, इस तथ्य के इर्द-गिर्द घूमता है कि C में अहस्ताक्षरित पूर्णांक प्रकारों को संख्या के बजाय एक अमूर्त बीजगणितीय वलय के सदस्यों के रूप में व्यवहार करने की आवश्यकता है [उदाहरण के लिए, यदि कोई अहस्ताक्षरित 16-बिट पूर्णांक चर शून्य के बराबर है , इसे कम करने की आवश्यकता हैपैदावार 65,535, और अगर यह 65,535 के बराबर है, तो इसे बढ़ाने के लिए शून्य उपज की आवश्यकता होती है।] ऐसे समय होते हैं जब ऐसा व्यवहार बेहद उपयोगी होता है, लेकिन संख्यात्मक प्रकार इस तरह के व्यवहार का प्रदर्शन कुछ भाषाओं की भावना के खिलाफ हो सकता है। मैं यह अनुमान लगाऊंगा कि अहस्ताक्षरित प्रकारों को छोड़ने का निर्णय संभवतः जाँच और अनियंत्रित संख्यात्मक संदर्भों दोनों का समर्थन करने का निर्णय करता है। व्यक्तिगत रूप से, मैं चाहता हूं कि अहस्ताक्षरित संख्या और बीजगणितीय रिंगों के लिए अलग-अलग पूर्णांक प्रकार थे; अहस्ताक्षरित माइनस ऑपरेटर को 32-बिट संख्या पर लागू करने के लिए 64-बिट हस्ताक्षरित परिणाम प्राप्त करना चाहिए [शून्य के अलावा किसी भी चीज़ को नकारने से ऋणात्मक संख्या प्राप्त होगी] लेकिन एक रिंग प्रकार के लिए एक शून्य ऋण को लागू करने से उस रिंग के भीतर एडिटिव व्युत्क्रम का उत्पादन करना चाहिए।
किसी भी स्थिति में, अहस्ताक्षरित पूर्णांक CLS के अनुरूप नहीं हैं, यह है कि Microsoft ने निर्णय लिया कि भाषाओं को अहस्ताक्षरित पूर्णांक का समर्थन करने के लिए "CLS संगत" नहीं माना जाना चाहिए।
अहस्ताक्षरित int आपको वास्तविक जीवन में उतना हासिल नहीं करता है, हालांकि 1 से अधिक प्रकार के int होने से आपको दर्द होता है, इसलिए बहुत सी भाषाओं ने केवल चींटियों को गाया है।
सीएलएस आज्ञाकारी का उद्देश्य एक वर्ग को कई भाषाओं से उपयोग करने की अनुमति देना है ...
याद रखें कि कोई भी आपको सीएलएस अनुरूप नहीं बनाता है।
आप अभी भी किसी विधि के भीतर या किसी निजी विधि से पार्स के रूप में अहस्ताक्षरित इनट्स का उपयोग कर सकते हैं , क्योंकि यह केवल सार्वजनिक एपीआई है जो सीएलएस अनुपालन को प्रतिबंधित करता है।
निरुपित पूर्णांक सीएलएस के अनुरूप नहीं होते हैं क्योंकि वे कुछ भाषाओं के बीच अंतर करने योग्य नहीं होते हैं।