2010-02-04 8 views
15

Gibt es eine Möglichkeit, alle Klassen anzuzeigen, die eine bestimmte Methode von einer Schnittstelle implementieren. Wenn Sie bei einem Methodenaufruf in Visual Studio auf F12 klicken, wechseln Sie zu seiner Definition. Wenn es eine Schnittstelle ist, dann müssen Sie immer noch nach der Klasse suchen. Ich wäre nett, in der Lage zu sein, ein Popup zu erhalten und eine der Klassen zu wählen, die die Schnittstelle ... implementiert. Gibt es das?Gehe zu Definition in Visual Studio - Schnittstellen

Antwort

6

Sie müssen ein Plugin verwenden, das es ermöglicht (oder schreiben Sie Ihre eigenen).

ReSharper und Visual Assist haben diese Funktion.

1

Reflector kann dies tun (zumindest über die Baugruppen hat es geöffnet).

(Klar könnte es eine Implementierung in einer Versammlung sein, so dass eine vollständige Suche nach jede Implementierung erfordern würde jede Montag zu überprüfen.)

2

Ich benutze die DevExpress/CodeRush Go To Implementator plugin (alle kostenlos).

Wenn Sie DevExpress installieren es ist nicht klar, wie es starten, Sie sollen verwenden, um die Verschiebung - ctrl - alt - o Tastatur kurz, aber ich empfehle Zugabe zu dem Datei-Menü indem Sie den folgenden Registrierungseintrag:

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Developer Express\CodeRush for VS\11.2] 
"HideMenu"=dword:00000000 

(Drop the \Wow6432Node\, wenn Sie auf 32-Bit sind)

11

Und ohne in Abwürgen aller Visual Studio-Erweiterungen ...

Wenn Sie mit der rechten Maustaste auf die Methode und wählen Sie "alle Referenzen suchen" oder drücken Sie F12 + Shift eine Liste der Implementierungen wird in der Suche Symbol Ergebnisse zurückgegeben werden; geordnet nach Schnittstelle, Klasse, Methodenaufruf.

aktualisieren

installieren VS 2015, rechts klicken - GoToImplementation (falls Sie eine Implementierung für die Schnittstelle haben, VS navigieren direkt zu ihm, wenn Sie zwei oder mehr haben, VS wird sie aufführen)

+0

CTRL - F12 (GoToImplementation), Visual Studio 2015 –

7

Natürlich existiert bereits in Visual Studio! Es ist seit je da.

Klicken Sie mit der rechten Maustaste auf Ihren Code (Beispiel: Eigenschaft) und wählen Sie "Anrufhierarchie anzeigen". Im Fenster Aufrufhierarchie wählen Sie den Ordner Implementierungen.

Da sind Sie. Warum Nachschärfer ??? Natürlich ist das nicht so komplex wie die Implementierung von Resharper, die direkte Abfrage auf Schnittstelle ermöglicht, aber nur eine Eigenschaft oder eine Methode von dieser Schnittstelle sollte ausreichen. Ex:

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;} 
} 

Rechtsklick auf der Count-Eigenschaft (überall - innerhalb der Klasse oder in der Schnittstelle) und wählen Sie „Ansicht Aufrufhierarchie“, sollte sagen, welche Klasse implementiert es, und damit die ganze Schnittstelle.

Am Anfang lieben wir alle Resharper, mit der Zeit hassen wir alle!

2

Eine weitere Alternative besteht darin, den Cursor auf die Methode zu setzen, die Sie untersuchen möchten. Drücken Sie dann Strg +, (Strg und Komma). Dies zeigt den Dialog zum Dialog mit der Schnittstelle und der Methodenimplementierung an.

Verwandte Themen