की कोई खास कारण है कि इसी क्रम में चुना गया था है। चुना गया आदेश अधिक सामान्य से अधिक विशिष्ट तक जाता है, जो मुझे लगता है कि एक उचित अच्छी संपत्ति है।
प्रश्न के लिए "किसी ऑर्डर की आवश्यकता क्यों है?", यह कार्यान्वयन और परीक्षण टीमों पर भाषा द्वारा लगाए गए स्पष्ट, स्पष्ट आदेश के लिए आसान है। हम बाधाओं को किसी भी क्रम में आने की अनुमति दे सकते हैं, लेकिन यह हमें क्या खरीदता है?
जितना अधिक मैं भाषाओं पर काम करता हूं, उतना ही मैं राय मानता हूं कि हर बार जब आप उपयोगकर्ता को कोई विकल्प देते हैं, तो आप उन्हें खराब विकल्प बनाने का मौका देते हैं। सी # का एक बुनियादी डिजाइन सिद्धांत यह है कि जब हम चीजें गलत लगती हैं और आपको सही बनाने के लिए मजबूर करती हैं, तो हम आपको बताते हैं - जो जावास्क्रिप्ट का मूल डिजाइन सिद्धांत नहीं है। इसका मूल डिजाइन सिद्धांत "गड़बड़ी कर रहा है और उपयोगकर्ता का क्या मतलब है" करने का प्रयास करें। सी # में सही वाक्यविन्यास पर अधिक प्रतिबंध लगाकर हम बेहतर ढंग से सुनिश्चित कर सकते हैं कि इच्छित अर्थशास्त्र प्रोग्राम में अच्छी तरह से व्यक्त किया गया है।
class C : X , Y
या
... where T : X, Y
वाई स्पष्ट रूप से करने का इरादा है:
उदाहरण के लिए, अगर मैं आज एक सी # की तरह भाषा को डिजाइन किया गया था कोई रास्ता नहीं है कि मैं की तरह अस्पष्ट वाक्यविन्यास होता है एक इंटरफ़ेस एक्स है? हम सिंटेक्टिक रूप से नहीं बता सकते कि एक्स का उद्देश्य इंटरफ़ेस या क्लास होना था या नहीं। यह अस्पष्टता कहने का पर्याप्त आधार बेस प्रकार बनाम इंटरफेस में चक्रों का पता लगाने जैसी चीजों को बहुत जटिल बनाता है। यह सभी संबंधित लोगों पर अधिक आसान होगा यदि यह अधिक वर्बोज़ था, क्योंकि यह वीबी में है।
स्रोत
2011-12-15 15:54:03
पृष्ठभूमि के रूप में, भाषा विनिर्देश बताता है कि बाधाओं को क्रम में होना चाहिए * प्राथमिक बाधा, माध्यमिक बाधा, कन्स्ट्रक्टर बाधा *, जहां * प्राथमिक बाधा * बस * वर्ग * या * संरचना *, एक * माध्यमिक बाधा है * एक दिया इंटरफ़ेस या कक्षा प्रकार है, और * कन्स्ट्रक्टर बाधा * बस * नया() * है। इसीलिए उन्हें इस तरह वर्गीकृत क्यों किया जाता है और उस आदेश की आवश्यकता होती है, मुझे कोई जानकारी नहीं है। शायद एनोटेटेड भाषा विनिर्देश इस पर कुछ प्रकाश डालेगा? –
दिलचस्प, धन्यवाद। यही कारण है कि मैं विशेष रूप से दिलचस्पी लेता हूं। –