सी # भाषा तत्व का उपयोग करने की अनुमति देने का उद्देश्य/बिंदु/कारण क्या है, जैसे कि "रनटाइम" ऑपरेटर के अंदर विधि समूहों जैसे सीएलआर में कोई रनटाइम प्रतिनिधित्व नहीं है?
भाषा डिज़ाइन नोट्स संग्रह इस निर्णय के बारे में कोई जिक्र नहीं करता है, इसलिए उत्तर में कोई अनुमान अनुमानित होगा। वे उल्लेख करते हैं कि यदि "है" का नतीजा हमेशा सत्य या गलत होने के लिए निर्धारित किया जा सकता है, तो यह इतना निर्धारित और चेतावनी उत्पन्न करता है। ऐसा लगता है कि यह बस एक त्रुटि हो सकती है।
एक चेतावनी में सही त्रुटि (या बस इसे अनुमति देने) को बदलने में सबसे आम कारण यह है कि इससे स्वचालित रूप से कोड उत्पन्न करने वाले प्रोग्राम के उत्पादकों पर बोझ कम हो जाता है। हालांकि, मुझे यहां वास्तव में एक आकर्षक परिदृश्य नहीं दिख रहा है।
अद्यतन:
मैं सिर्फ सी # 1.0 विनिर्देश जाँच की। इसमें इस भाषा नहीं है। यह नल या विधि समूह तर्कों के बारे में कुछ भी नहीं कहता है। और निश्चित रूप से यह विधि समूह रूपांतरणों के बारे में कुछ भी नहीं कहता है क्योंकि सी # 1.0 में कोई अंतर्निहित विधि समूह रूपांतरण नहीं था; यदि आप विधि एम को 0 डी 3
पर निर्दिष्ट करने के लिए विधि एम को रूपांतरित करना चाहते हैं तो यह बाद बिंदु "एम डी डी" के लिए सही है बल्कि सत्य के बजाय झूठ लौटने का औचित्य है; आप कानूनी तौर पर "डी डी = एम;" नहीं कह सकते तो "एम डी डी" सच क्यों होना चाहिए?
निश्चित रूप से सी # 2.0 में यह कम समझ में आता है, क्योंकि आप कह सकते हैं "डी डी = एम;" सी # 2.0 में।
मैंने अभी भी उन लोगों में से एक से पूछा है जब "है" ऑपरेटर डिज़ाइन किया गया था और उन्हें इस प्रश्न को किसी अन्य तरीके से तय करने की कोई याद नहीं थी। उनका संदेह यह था कि "है" ऑपरेटर का मूल डिज़ाइन किसी भी त्रुटि, केवल चेतावनियां नहीं देना था, और यह कि पाठ समूह और नल और व्हाट्नॉट के साथ क्या करना है, इस बारे में कल्पना में सभी पाठ पोस्ट-हॉक के लिए जोड़े गए थे Spec का सी # 2.0 संस्करण, और वास्तव में संकलक वास्तव में क्या किया के आधार पर।
संक्षेप में, ऐसा लगता है कि यह सी # 1.0 में एक डिज़ाइन छेद था जिसे सी # 2.0 के लिए spec अद्यतन किया गया था जब पर ppered था। ऐसा लगता है कि इस विशिष्ट व्यवहार की वांछित और जानबूझकर लागू नहीं किया गया था।
इस सिद्धांत को इस तथ्य से मजबूर किया गया है कि अज्ञात विधियों सी # 2.0 में "है" के तर्क के रूप में उपयोग की जाने वाली त्रुटि उत्पन्न करते हैं। ऐसा करने में यह एक तोड़ने वाला बदलाव नहीं होगा, लेकिन यह "एम डी डी" बनाने के लिए एक तोड़ने वाला परिवर्तन अचानक सच हो रहा है या त्रुटि हो रही है।
आगे अद्यतन:
हालांकि यह जांच कर रहा कुछ दिलचस्प सीखा है। (मेरे लिए।) जब सुविधा मूल रूप से डिज़ाइन की गई थी, तो डिजाइन को किसी प्रकार के नाम, या टाइप ऑब्जेक्ट को "है" के दाएं हाथ के तर्क के रूप में अनुमति देना था। सी # 1.0 को भेजे जाने से पहले उस विचार को छोड़ दिया गया था।
+1 _no सुराग _... – SLaks
यह ... आश्चर्यजनक है। 'As' ऑपरेटर पर अनुभाग विधि समूहों का कोई उल्लेख नहीं करता है। –
@ टिम: लेकिन "एएस" ऑपरेटर को कास्ट्स, सशर्त ऑपरेटर और "है" ऑपरेटर के संयोजन के लिए एक वाक्य रचनात्मक चीनी के रूप में परिभाषित किया गया है, इसलिए "as" ऑपरेटर को विधि समूहों का उल्लेख करने की आवश्यकता नहीं है। –