2015-12-05 8 views
7

मैं वीएस 2015 का उपयोग करता हूं। जब मैं एक नई कक्षा बनाता हूं और शॉर्टकट "Ctrl +" के साथ इंटरफ़ेस को कार्यान्वित करने का प्रयास करता हूं। उदाहरण के लिए, कक्षा स्टारशिप: IStarShip और फिर मैं "Ctrl +" का उपयोग करता हूं। और इंटरफेस लागू करें का चयन करें। यह गुणों और विधियों को लागू करता है लेकिन वर्णमाला क्रम में! क्या उन्हें इंटरफ़ेस में क्रम में लागू करने का कोई आसान तरीका है, या क्या मुझे इसे मैन्युअल रूप से करना चाहिए? मेरे पास अभी भी एक रिशेर्पर नहीं है, इसलिए यह कोई विकल्प नहीं है।इंटरफ़ेस गुणों को कैसे कार्यान्वित करें वर्णमाला क्रम में नहीं

उत्तर

1

वीएस 'कार्यान्वयन इंटरफेस' कार्यक्षमता स्पष्ट रूप से कोड उत्पन्न करने के लिए प्रतिबिंब का उपयोग करती है, और प्रतिबिंब एपीआई में कुछ भी नहीं है जो विभिन्न कॉलों द्वारा लौटाए गए सदस्यों के आदेश की गारंटी देता है। हमारे पास प्रतिबिंब आदेश या वीएस कोड जनरेटर पर इंटरफेस को लागू करने के लिए उपयोग किए जाने वाले नियंत्रण पर नियंत्रण नहीं है, इसलिए हम जिस तरह से काम करते हैं उसे बदल नहीं सकते हैं।

असल में एकमात्र विकल्प एक वीएस एक्सटेंशन का उपयोग करना है जैसे कि रिशेर्पर जो कार्यान्वयन इंटरफ़ेस कार्यक्षमता को प्रतिस्थापित करता है।

+0

लेकिन वीएस2013 में व्यवहार अलग क्यों है? –

+0

यदि आप इंटरफ़ेस के सदस्यों (उदाहरण के लिए 'टाइपोफ (IList) .GetMembers() 'के सदस्यों की गणना करते हैं तो परिणाम बहुत अच्छी तरह से अनियंत्रित होते हैं। मुझे लगता है कि किसी ने सोचा था कि यह चीजों को यादृच्छिक क्रम के क्रम में वर्णित करने के बजाय बेहतर होगा जो आपको पहले मिला था। उस कोड में उन्हें कोड था जो पहले ऑर्डर कर रहा था और इसे वर्णानुक्रम के पक्ष में छोड़ दिया था। मेरे पास देवताओं की रेखा नहीं है इसलिए मैं निश्चित रूप से नहीं कह सकता। – Corey

+5

जब आप इंटरफ़ेस (कोड उत्पन्न करें) को लागू करने के लिए VS2013 का उपयोग करते हैं, तो यह विधियों को उसी क्रम में रखेगा जैसा कि उन्हें इंटरफ़ेस में परिभाषित किया गया है। ओपी सवाल ऐसा लगता है कि वीएस2015 में ऐसा क्यों नहीं होता है, और यदि संभव हो, तो यह उदाहरण के लिए वीएस2013 में हो सकता है। –

संबंधित मुद्दे