Angenommen, Sie haben eine in C # definierte Schnittstelle. Was ist die einfachste Methode, um alle Klassen zu finden, die eine Implementierung der Schnittstelle bereitstellen?
Die Brute-Force-Methode besteht darin, "Verweise suchen" in Visual Studio zu verwenden und die Ergebnisse manuell zu durchsuchen, um die Verwendungen von den Implementierungen zu trennen. Bei einer Schnittstelle in einer großen Codebasis, auf die mit relativ wenigen Implementierungen stark verwiesen wird , kann dies jedoch der Fall sein zeitaufwändig und fehleranfällig.
In Java läuft javadoc auf der Code - Basis (die -privater Option privaten Klassen enthalten) würde eine Dokumentationsseite für die Schnittstelle (zB erzeugen Vergleichbar ) , die alle implementierenden Klassen für die Schnittstelle sowie alle Subinterfaces enthält (obwohl es nicht der Fall ist einschließlich der Implementierung von Klassen der Subschnittstellen, diese sind relativ einfach zu bestimmen, indem ein Drilldown in die aufgelisteten Subschnittstellen durchgeführt wird. Es ist diese Funktionalität, die ich suche, aber mit C # und Visual Studio.
quelle
Sie können mit der rechten Maustaste auf einen Methodennamen klicken (Definition in der Schnittstelle oder Implementierung in einer anderen Klasse) und Aufrufhierarchie anzeigen auswählen. Im Fenster Anrufhierarchie befindet sich der Ordner "Implementiert", in dem Sie alle Speicherorte der Implementierung der Schnittstellenmethode finden.
quelle
Setzen Sie den Cursor auf Klassen- oder Schnittstellentyp und
STRG + F12
quelle
Mit Visual Studio 2010+
Klicken Sie mit der rechten Maustaste auf eine Mitgliedsmethode und wählen Sie Ansichtshierarchie anzeigen. Erweitern Sie den Ordner Implements. Hier werden alle Typen aufgelistet, die die Schnittstelle implementieren, zu der die Methode gehört.
Mit Resharper 7
Klicken Sie mit der rechten Maustaste auf die Benutzeroberfläche> Navigieren zu> Abgeleitete Symbole. Die fett aufgelisteten Symbole stammen direkt von der Benutzeroberfläche. Nicht fette Symbole stammen aus einer Oberklasse.
quelle
Für diejenigen, die Visual Studio 2015 verwenden, gibt es diese großartige Erweiterung namens Go To Implementation . Versuche es.
Sobald Sie die Erweiterung installiert haben, können Sie mit der rechten Maustaste auf alle Vorkommen der Benutzeroberfläche (z. B. IUrlShortener) klicken und auf das
Go To Implementation
Menü klicken . Wenn Sie nur eine Klasse haben, die die Schnittstelle implementiert, gelangen Sie durch Klicken auf das Menü direkt zur Klasse. Wenn Sie mehr als eine Klasse haben, die die Schnittstelle implementiert, werden alle Klassen aufgelistet.quelle
Installieren Sie für Benutzer von Visual Studio 2015 Visual Studio 2015 Update 1 RC. Aus dem Visual Studio-Blog :
quelle
CTRL
+F12
Ich glaube nicht, dass diese Funktionalität in VS integriert ist, aber IIRC Resharper hat dies.
quelle
Sie können eine Suche nach regulären Ausdrücken für die Schnittstelle durchführen.
STRG + UMSCHALT + F öffnet das folgende Fenster:
quelle
Ich bevorzuge die Option "Navigieren zu ...". Versuchen Sie Folgendes, während sich der Cursor auf dem Funktionsaufruf befindet:
Tastenkürzel:
Speisekarte:
Leistungen:
quelle
Verwenden Sie Umschalt + F12, um alle Referenzen einschließlich der Definitionen anzuzeigen.
quelle
Wenn Sie die Resharper- Verknüpfung ALT + END verwenden, können Sie möglicherweise alle Inheritors finden.
quelle
Ich habe gehört (keine Erfahrung selbst), dass Sauerstoff zu .Net ist, wie Javadoc zu Java ist.
quelle