Visual Studio-Fenster mit einer Liste der Methoden


126

Gibt es in Visual Studio ein Fenster, in dem eine Liste der Methoden in der aktiven Klasse angezeigt wird? Ein kleines Fenster wie der Projektmappen-Explorer wäre großartig. In Eclipse gibt es eine.


2
Für diejenigen, die in Zukunft suchen - CodeMaid bietet eine solche Liste und vieles mehr! codemaid.net
BKSpurgeon

Antworten:


127

Es gibt ein Dropdown-Menü direkt über dem Codefenster:

Alt-Text

Es heißt Navigationsleiste und enthält drei Dropdowns: Das erste Dropdown enthält Projekt , zweiten Typ und dritte Elemente (Methoden).

Sie können die Tastenkombination Ctrl+ F2(Fokus auf das Projekt- Dropdown verschieben) verwenden und Tabzweimal drücken (Fokus auf das dritte Dropdown verschieben), um es zu fokussieren. Der Abwärtspfeil erweitert die Liste.

Bild in voller Größe


16
Wissen Sie, ob es eine Verknüpfung zum Öffnen gibt? Es ist ärgerlich, dafür die Maus zu verwenden.
Mariusz Pawelski

@ ChrisF es scheint, dass ich dieses Fenster in vs2012 nicht sehen kann. Wie aktiviere ich es?
ysrb

@ysrb - Keine Ahnung. Ich bin immer noch auf VS2010 hier. Angesichts der Tatsache, dass es sich bei dieser Frage um VS2008 handelte, würde ich vorschlagen, dass Sie eine neue Frage stellen (Link zurück zu dieser Frage, um zu zeigen, dass es sich nicht um ein Duplikat handelt).
ChrisF

10
Suchen Sie auch nach einer Verknüpfung zum Öffnen und / oder nach einem permanent geöffneten Fenster oder Rahmen.
Xonatron


43

Ich habe herausgefunden, wie man das Dropdown-Menü einschaltet, wie in der ersten Antwort (@ChrisF) gezeigt:

Gehen Sie zu Optionen-> Texteditor -> (Ihre Sprache)

und kreuzen Sie "Navigationsleiste" im Anzeigebereich an.


Du rettest meinen Tag!
Emanuel Gianico

Ich habe immer die Navigationsleiste für VB.NET verpasst. Dies ermöglicht es. Danke vielmals.
Huha

Sie finden "Optionen" im Menü unter "Extras".
Ohgodnotanotherone

Extras (Registerkarte)> Optionen> Texteditor> (Ihre Sprache)
SandstormNick

Danke mark.oliver.asp.newbie. Ich habe gerade ein Upgrade von 2015 auf 2019 durchgeführt und versucht, diese Leiste im gesamten Optionsmenü zu finden.
ExcelsiorTechSolutions

30

Seit Visual Studio 2012 können Sie die Gliederung (Felder und Methoden) im Lösungs-Explorer anzeigen, indem Sie den Ihrer Datei entsprechenden Knoten erweitern.


2
Ich bevorzuge diese Option sehr als die Dropdown-Option, die (meiner Meinung nach) ärgerlich alphabetisch sortiert ist.
Dbernard

Beachten Sie, dass , wenn Sie einen haben partial classdann alle Mitglieder unter diesem Knoten aufgeführt sind, nicht nur solche , die nur in dieser Datei.
Dai

24

Die Verknüpfung zur Navigationsleiste ist Ctrl+ F2. Führt Sie zuerst zum Dropdown-Menü "Typen". Drücken Sie die Tabulatortaste, um zur Dropdown-Liste der Methode zu gelangen, und geben Sie dann eine Methode ein, um zu dieser zu gelangen.


22

ReSharper hat einen 'ReSharper | Windows | Dateistruktur 'Fenster, das zur Visualisierung der aktuellen Codedateistruktur verwendet wird.


Sehr nützlich, aber gibt es eine Tastenkombination für dieses Fenster?
Nicolas

`Alt +` ist die Tastenkombination für diese.
Hallmanac

19

Resharper verfügt über das Dateistrukturfenster, das der Eclipse-Gliederungsansicht sehr ähnlich ist. Ursprünglich beantwortet in:

Visual Studio 2012: Liste aller Methoden in der Klasse

Resharper-Hilfe: http://www.jetbrains.com/resharper/webhelp/Reference__Windows__File_Structure_Window.html

Screenshot des Dateistrukturfensters


STRG - F12 öffnet das Navigationsfenster "Gehe zu Mitglied" in Resharper. Es listet alle Methoden in der Klasse auf und bietet Ihnen die Möglichkeit zu suchen.
WoZoNe

1
STRG - F11 zeigt das obige Resharper-Fenster. Genau das habe ich gesucht.
Gattsbr

11

Obwohl es eine alte Frage ist, hilft Ihnen diese Antwort vielleicht genauso wie mir.

Sie können die Codemaid-Erweiterung hier herunterladen: Codemaid-Website

Es hat viele Funktionen, die Sie auf ihrer Website finden können.

Diejenige, die mit dieser Frage zusammenhängt, ist das Graben von Code

Visualisieren und navigieren Sie in einer Baumansichtshierarchie durch den Inhalt Ihrer C # - und C ++ - Dateien. Wechseln Sie schnell zwischen verschiedenen Sortiermethoden, um einen besseren Überblick zu erhalten. Ziehen und Ablegen, um den Code neu zu organisieren. Siehe McCabe-Komplexitätswerte und informative Tooltipps.

Mit anderen Worten, Sie können die Methoden und Eigenschaften anzeigen und sie auch per Drag & Drop neu organisieren. Es ist meine Erweiterung für den täglichen Gebrauch


CodeMaid implementiert die meisten der integrierten VS-Funktionen neu und ist ein Overkill und unangenehm, wenn doppelte Menüelemente die IDE verschmutzen.
Ivan G.

Ich glaube nicht, einige nützliche Funktionen wie ctrl+m+z, ctrl+m+space, ctrl+m+f, sort lines, clean whole solution, collapse all in solution explorer, arrange methods with drag and drop, method and properties treesind Werkzeuge , die Sie nur in einigen Tools wie reshraper finden.
Mo Hrad A

1
Ich habe es nicht als Straftat gemeint, aber die meisten "Code-Bereinigungs" -Verfahren führen meistens heilige Kriege des Codierungsstils ein, die mir egal sind. Produkt ist zuerst. Es ist mir egal, ob eine Datei Leerzeichen und Tabulatoren enthält, nur die Produktivität.
Ivan G.

Die Code-Gliederung (Spaten) ist in der Tat hilfreich. Es wäre großartig, wenn es sich mit dem aktuell aktiven / ausgewählten Mitglied im Texteditor synchronisieren würde.
Markus L

@ MarkusL Sie können eine neue Ausgabe hier erstellen: github.com/codecadwallader/codemaid/labels/enhancement
Mo Hrad A

8

Es gibt keine direkte Entsprechung zur Gliederungsansicht in Eclipse. Das nächste, was ich gefunden habe, ist die Klassenansicht, in der alle Klassen und ihre Mitglieder / Methoden aufgelistet sind. Oben befindet sich ein Suchfeld, um die Auswahl einzugrenzen.


Seit VS 2010 unter C ++ hier bevorzuge ich diese Antwort, da das Dropdown-Menü, das meinen Code verbirgt, ärgerlich ist. Eine weitere bequemere Verknüpfung zum Anzeigen der Klassenansicht ist Ctrl + Shift + C.
Jeff T.

5

In Visual Studio 2015 Ansicht> Andere Windows> Ressourcenansicht . Die Tastenkombination istCtrl + Shift+ E. Ich finde das sauberer als Class View. Mit Class View Windows können Sie Methoden / Attribute basierend auf dem Zugriffsmodifikator (privat / geschützt / öffentlich) usw. filtern.


2
Während dies die Felder und Methoden der Klasse auflistet, müssen Sie zunächst zur erforderlichen Klasse navigieren. Was das OP verlangte, war für die aktuell aktive Klasse. dh die aktuell in der Codeansicht geöffnete. Wenn ich eine 3000 Zeilen lange Klasse mit 78 Methoden und 63 Feldern habe, die ich derzeit geöffnet habe, und schnell zu einem bekannten Methodennamen navigieren möchte, mich aber nicht an dessen Position erinnere, ist es nicht besser, zuerst im Namespace zu navigieren als Strg-F .
Draco18s vertraut SE

1
Danke, genau das habe ich gesucht! Dies ist ein unglaublich hilfreiches Werkzeug.
user1529413

4

Oben in Ihrem Texteditor sollte sich eine Dropdown-Liste befinden, in der alle Methoden, Eigenschaften usw. des aktuellen Typs aufgelistet sind. und es ist anklickbar (auch wenn diese Mitglieder in anderen Dateien definiert sind - in diesem Fall sind sie ausgegraut, aber Sie können trotzdem mit ihnen navigieren).

Wenn Sie den Klassen-Explorer ( Ctrl+ Alt+ C) zum Navigieren in Ihrem Projekt verwenden, erhalten Sie außerdem einen vollständigen Überblick über alle Ihre Typen. Es scheint jedoch keine Einstellung in Extras / Optionen zu geben, mit der Sie den aktiven Typ in diesem Fenster verfolgen können (dies gilt für den Lösungs-Explorer) - möglicherweise ist ein Makro oder Add-In in Ordnung ...



1

Meinen Sie das Klassenansichtsfenster (Ansicht-> Klassenansicht oder Ctrl+ W,C )?

Sie haben auch das Intelligenz-Popup-Fenster


Ich denke nicht, dass einer dieser beiden nützlich ist. In der Klassenansicht müssen Sie zuerst Ihre Klasse suchen. Um Intellisense zu zeigen, müssen Sie irgendwo einen Klassennamen schreiben oder ihn sogar instanziieren. Andere Antworten enthalten schnellere und einfacher zu verwendende Lösungen.
David Ferenczy Rogožan

1

Mit Visual Studio 2010

Sie wählen Extras-> Einstellungen-> Experteneinstellungen

In der linken unteren Ecke sehen Sie die Registerkarte "Klassenansicht" rechts neben der Registerkarte "Projektmappen-Explorer".

Im oberen Bereich des Layouts "Klassenansicht" sehen Sie die Liste mit Klassennamen, Aufzählung, Struktur, ... Im unteren Bereich des Layouts "Klassenansicht" sehen Sie die Liste der Mitglieder für diese Klasse, Aufzählung oder struct


Wie bereits von sagie beantwortet, kommentiert Dawid Ferenczy bereits: "In der Klassenansicht müssen Sie zuerst Ihre Klasse suchen. Um Intellisense anzuzeigen, müssen Sie irgendwo einen Klassennamen schreiben oder ihn sogar instanziieren. Andere Antworten enthalten schnellere und benutzerfreundlichere Lösungen . "
Draco18s vertraut SE

1

Eine gute und saubere Möglichkeit, dies zu tun, ist die Verwendung von View.SynchronizeClassView.

Geben Sie hier die Bildbeschreibung ein

Zusätzlich können Sie:

  • Pin dein Klassenansichtsfenster
  • Reduzieren Sie den oberen Bereich (Auflistung aller Klassen).

Und jetzt fühlt es sich genauso an wie die Funktion "Methoden in aktueller Datei auflisten" des Visual Assist (die übrigens auch Mitglieder auflistet).


Wo finde ich das View.SynchronizeClassView? Ich kann die "normale" Klassenansicht nur in Visual Studio 2017 finden.
user11909

Dies ist ein Befehl, den Sie im Befehlsfenster eingeben. Leider können Sie nicht festlegen, dass ClassView automatisch synchronisiert wird, und müssen dies jedes Mal manuell tun. Sie können eine Verknüpfung zuweisen, dies ist jedoch immer noch eine unnötige Unannehmlichkeit.
mKay

0

Microsoft hat keine Lust, dieses nützliche Tool zu implementieren. Wenn Sie jedoch zufällig Visual Assist verwenden können, finden Sie es unter VAssistX> Tools> VA Outline . Das Plugin ist allerdings nicht kostenlos.


0

Ich benutze USysWare DPack seit Ewigkeiten. Es ist sehr klein und nicht aufdringlich. Wenn Sie also nur ein schnelles Verknüpfungsfenster mit einer Liste der Methoden der aktuell verwendeten Datei wünschen, bietet es genau das. Gut ist, dass der Autor nach mehr als 10 Jahren immer noch aktiv ist, um weiterhin die gleichen Funktionen für die neueste VS-Version bereitzustellen.

https://marketplace.visualstudio.com/items?itemName=SergeyM.DPack-16348

Verwenden Sie Alt + Mnach der Installation einfach das Fenster mit der Methodenliste. Ich zeige lieber alle Mitglieder, aber es liegt an Ihnen.


-1

Gehen Sie in VS 2012 einfach zu Ansicht> Klassenansicht ... und Sie erhalten die GUI der Klassenansicht im Bereich der Hauptregisterkarte. Ziehen Sie dies nun auf das Seitendock und Sie haben genau das gleiche Layout wie in Eclipse.

-e


Das ist etwas anderes. Es werden keine Mitglieder der aktuellen Klasse angezeigt (Klasse in einem Editor geöffnet). Sie müssen es manuell suchen. Es ist besser, den Solution Explorer zu verwenden (Datei und Klasse darunter erweitern), da Sie ihn mit der aktuellen Datei synchronisieren können.
David Ferenczy Rogožan

-1

Mein bester Weg, dies zu tun, ist, dass ich das Codedefinitionsfenster unter Ansicht -> Codedefinitionsfenster öffne oder Ctrl+ W, D.

Und dann habe ich es schweben lassen und ich habe die Definitionen von Methoden in separaten Fenstern.

Grüße


Wie beantwortet es die Frage von OP? Er braucht überhaupt keine Definitionen, nur eine Liste der Klassenmitglieder. Um eine Definition anzuzeigen, können Sie normalerweise einfach auf eine Methode in einer solchen Liste doppelklicken.
David Ferenczy Rogožan

-4

grep -i "sub" filename.vb> methods.txt grep -i "function" filename.vb >> methods.txt


Bitte erläutern Sie, wie dies eine Antwort auf die Frage liefert.
AdrianHHH

Es beantwortet die Frage, da diese Lösung eine Liste aller Subs und Funktionen innerhalb einer vb-Klasse enthält.
John Reichert

Er wollte keine Liste von Methoden in einer Klasse. Er brauchte ein Fenster in Visual Studio mit einer Liste der Methoden in der aktiven Klasse. Er bezog sich auch auf dasselbe in Eclipse. Es ist offensichtlich, dass es bei Ihrer Antwort um etwas völlig anderes geht.
David Ferenczy Rogožan
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.