2013-04-05 2 views
10

अक्सर जब कोड को ब्राउज़ कर, मैं कुछ भर में इस तरह आया हूँ:लागू किया विधि के बजाय इंटरफेस पर जाएं

public class Fruity 
{ 
    private IOrange _Orange; 

    public Fruity() 
    { 
     _Orange = new Orange() as IOrange; 
    } 

    public void PrepareFruit() 
    { 
     return _Orange.Peel(); 
    } 
} 

बढ़िया है, तो अब मैं देख रहा हूँ करने के लिए कैसे पील विधि कार्यान्वित किया जाता है चाहता हूँ। विधि पर राइट-क्लिक करने से मुझे परिभाषा पर जाना पड़ता है जो मुझे इंटरफ़ेस स्टब पर ले जाता है।

ठीक है, कड़ाई से बोलते हुए, परिभाषा इंटरफ़ेस द्वारा निर्धारित की गई है कि निजी चर को इस तरह से परिभाषित किया गया है, लेकिन क्या कार्यान्वयन पर जाने का कोई तरीका है?

निश्चित रूप से सभी संदर्भ खोजें जो कॉल, इंटरफेस और विवेक के स्कैटर-बंदूक दृष्टिकोण हैं। लेकिन कार्यान्वयन के स्रोत इस मामले में स्पष्ट है इसलिए मैं यह मैंने सोचा है था के लिए कूद करने में सक्षम होना चाहिए ...

जाहिर है, वहाँ कभी कभी अस्पष्टता जो अच्छी तरह से यहाँ वर्णित है हो सकता है:

Go to definition on concrete type

लेकिन निश्चित रूप से कार्यान्वयन क्रिस्टल स्पष्ट होने पर कार्यान्वयन विकल्प के लिए जाना चाहिए।

+4

साथ कार्यान्वयन के लिए कूद कर सकते हैं और ReSharper जो है एक "कार्यान्वयन करने के लिए जाना" का परीक्षण संस्करण अन्य सामान का एक समूह को डाउनलोड करने के लायक हो सकता है, मैं डॉन यह नहीं पता कि मैंने कभी इसके बिना कैसे काम किया।मुझे नहीं पता कि डिफ़ॉल्ट आईडीई – NDJ

+0

में एक ही चीज़ कैसे करें, यह बिल्कुल स्पष्ट नहीं है। बेमेल ब्रेसिज़ का सुझाव है कि आपने पूरी कक्षा 'फ्रूटी' पोस्ट नहीं की है, तो हम कैसे जान सकते हैं कि आपके पास सदस्य फ़ंक्शन नहीं है जो '_ ऑरेंज' को 'नया मैंगोप्रेंडिंग टॉबीएऑनेंज()' पर सेट करता है? – hvd

+0

का डुप्लिकेट जैसा लगता है: http://stackoverflow.com/questions/4662784/visual-studio-is-there-a-way-to-navigate-to-real-implementation-of-method-behin? – nicodemus13

उत्तर

7

यदि आप Peel पर डबल-क्लिक या हाइलाइट करते हैं और CTRL+, दबाते हैं तो आपको "प्रतीक पर नेविगेट" विंडो मिल जाएगी जो वास्तविक कार्यान्वयन की सूची होगी, आमतौर पर दूसरी वस्तु के रूप में। यह तीसरे पक्ष के उपकरण के बिना इसे खोजने का सबसे तेज़ तरीका है। और "सभी संदर्भों को ढूंढें" के विपरीत, यह केवल विधि परिभाषाओं को दिखाता है और जहां भी इसे कहा जाता है।

+0

सभी 'अलग-अलग' के लिए एक 'छील' विधि मौजूद हो सकती है फल, और "नेविगेट टू", जहां तक ​​मुझे पता है 'IOrange' को लागू करने वाले वर्गों तक सीमित नहीं है। वैसे भी +1, अगर विधि नाम समझदार हैं, तो यह एक बड़ी समस्या नहीं होनी चाहिए। – hvd

+0

वास्तव में यह निश्चित रूप से आदर्श नहीं है, लेकिन यह शायद तीसरे पक्ष के उपकरण के बिना सबसे अच्छा विकल्प है। – PhonicUK

2

आप दृश्य स्टूडियो मेनू "देखें" पर जाएं और "कोड परिभाषा विंडो", तो जब आप .Peel() पर क्लिक करें आप .Peel() के कार्यान्वयन (यह हमेशा काम नहीं करता है, लेकिन यह कोशिश करते हैं और देखें) दिखाया जा सकता है ।

1

निश्चित रूप से विजुअल स्टूडियो में पहले से मौजूद है! यह हमेशा के बाद से है।

अपने कोड (पूर्व: संपत्ति) पर राइट क्लिक करें, "कॉल पदानुक्रम देखें" चुनें। कॉल पदानुक्रम विंडो में कार्यान्वयन फ़ोल्डर का चयन करें।

वहां आप हैं। Resharper क्यों ??? बेशक जटिल नहीं है क्योंकि रिशेर्पर से कार्यान्वयन के लिए जाना जाता है जो इंटरफ़ेस पर प्रत्यक्ष पूछताछ की अनुमति देता है, लेकिन केवल एक संपत्ति, या उस इंटरफ़ेस से एक विधि पर्याप्त होनी चाहिए। उदाहरण के लिए:

public interface IModule 
{ 
int Count { get; set; } 
} 

public class Module : Imodule 
{ 
    public int Count {get; set;} 
} 

public class Module2 : Imodule 
{ 
    public int Count {get; set;} 
} 

सही गणना संपत्ति पर क्लिक करें (कहीं भी - वर्ग के अंदर या इंटरफेस के अंदर) और "देखें कॉल पदानुक्रम", कहना चाहिए कि किस वर्ग यह लागू करता है, और इसलिए पूरे इंटरफ़ेस।

शुरुआत में हम सभी को रिशेर्पर से प्यार है, समय के साथ, हम सभी इससे नफरत करते हैं!

+0

हां, यह "सभी संदर्भ खोजें" से थोड़ा बेहतर है, लेकिन इसमें "जाने के लिए परिभाषा" की प्रत्यक्षता की कमी है, जो कि मैं जिस चीज की तलाश में था ... –

0

विजुअल स्टूडियो 2015 "के लिए जाओ कार्यान्वयन करने के लिए" विस्तार के साथ ऐसा कर सकते हैं - https://visualstudiogallery.msdn.microsoft.com/0ed93222-83cd-4db3-92bc-a78909047156

कई कार्यान्वयन देखते हैं, तो यह आपको एक सूची ताकि आप जो करने के लिए कूद करने के चुन सकते हैं दिखाएगा।

0
दृश्य स्टूडियो के साथ

> = 2015 आप शॉर्टकट कुंजी Ctrl + F12

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