Freigeben über


C# IntelliSense

C# IntelliSense ist eine sprachspezifische Codevervollständigen-Hilfe. Es steht Ihnen zur Verfügung, wenn Sie C#-Code im Code-Editor schreiben und im Befehlsfenster für den Direktmodus debuggen.

Vervollständigungslisten

Die IntelliSense-Vervollständigungslisten in C# enthalten Token aus Listenmitgliedern, Vollständiges Word und mehr. Sie bietet schnellen Zugriff auf:

  • Elemente eines Typs oder Namespaces

  • Namen von Variablen, Befehlen und Funktionen

  • Codeausschnitte

  • Schlüsselwörter für Die Sprache

  • Erweiterungsmethoden

In den Vervollständigungslisten in C# werden irrelevante Token herausgefiltert und Token basierend auf dem Kontext vorgewählt. Weitere Informationen finden Sie unter Gefilterte Vervollständigungslisten.

Codeausschnitte in Vervollständigungslisten

In C# enthält die Vervollständigungsliste Codeausschnitte, mit denen Sie vordefinierte Codetexte ganz einfach in Ihr Programm einfügen können. Codeausschnitte werden in der Abschlussliste als Verknüpfungstext des Codeausschnitts angezeigt. Weitere Informationen zu Codeausschnitten, die standardmäßig in C# verfügbar sind, finden Sie unter C#-Codeausschnitte.

Sprachstichwörter in Vervollständigungslisten

Die Abschlussliste enthält C#-Sprachstichwörter, mit denen Sie sie in Ihr Programm einfügen können. Weitere Informationen zu C #-Sprachstichwörtern finden Sie unter C#-Schlüsselwörter.

Erweiterungsmethoden in Vervollständigungslisten

In C# enthält die Vervollständigungsliste Erweiterungsmethoden, die sich im Bereich befinden.

Erweiterungsmethoden verwenden ein anderes Symbol als Instanzmethoden. Wenn sich eine Instanzmethode und Erweiterungsmethode mit demselben Namen im Bereich befinden, zeigt die Vervollständigungsliste das Erweiterungsmethodesymbol an.

Hinweis

Bei String Objekten zeigt die Vervollständigungsliste nicht alle Erweiterungsmethoden an.

Gefilterte Vervollständigungslisten

IntelliSense entfernt unnötige Member aus der Vervollständigungsliste mithilfe von Filtern. C# filtert die Vervollständigungslisten, die für diese Elemente angezeigt werden:

  • Schnittstellen und Basisklassen: IntelliSense entfernt automatisch unnötige Elemente aus den Schnittstellen- und Basisklassenabschlusslisten. Diese Entfernung umfasst Klassendeklarationsbasen sowie Schnittstellenlisten und Einschränkungslisten. Beispielsweise werden Enumerationen nicht in der Abschlussliste für Basisklassen angezeigt, da Enumerationen nicht für Basisklassen verwendet werden können. Die Abschlussliste der Basisklassen enthält nur Schnittstellen und Namespaces. Wenn Sie ein Element in der Liste auswählen und dann einen Kommaschlüssel eingeben, entfernt IntelliSense die Basisklassen aus der Vervollständigungsliste. Dies geschieht, da C# nicht mehrere Vererbungen unterstützt. Das gleiche Verhalten tritt auch für Einschränkungsklauseln auf.

  • Attribute: Wenn Sie ein Attribut auf einen Typ anwenden, wird die Vervollständigungsliste so gefiltert, dass die Liste nur die Typen enthält, die von den Namespaces absteigen, die diese Typen enthalten. Beispiel: Attribute.

  • Catch-Klauseln: Nur gültige Try-Catch-Schlüsselwörter werden in der Abschlussliste angezeigt.

  • Objektinitialisierer: Nur Elemente, die initialisiert werden können, werden in der Abschlussliste angezeigt.

  • neues Schlüsselwort: Wenn Sie die new eingeben und dann drücken, wird eine Vervollständigungsliste angezeigt. IntelliSense wählt automatisch ein Element in der Liste basierend auf dem Kontext in Ihrem Code aus. IntelliSense wählt z. B. automatisch Elemente in der Abschlussliste für Deklarationen und für Rückgabeanweisungen in Methoden aus.

  • Enumerationsstichwort: Wenn Sie nach einem Gleichheitszeichen für eine Enumerationszuweisung die LEERTASTE drücken, wird eine Vervollständigungsliste angezeigt. IntelliSense wählt automatisch ein Element in der Liste basierend auf dem Kontext in Ihrem Code aus. IntelliSense wählt beispielsweise elemente in der Abschlussliste automatisch aus, nachdem Sie das return Schlüsselwort eingegeben haben und wenn Sie eine Deklaration erstellen.

  • wie operatoren: IntelliSense zeigt automatisch eine gefilterte Vervollständigungsliste an, wenn Sie nach der Eingabe des Schlüsselworts as die is drücken.

  • Ereignisse: Wenn Sie das Schlüsselwort eventeingeben, enthält die Vervollständigungsliste nur Stellvertretungstypen.

  • Parameterhilfe: IntelliSense sortiert automatisch nach der ersten Methodenüberladung, die den Parametern entspricht, während Sie sie eingeben. Wenn mehrere Methodenüberladungen verfügbar sind, können Sie die Pfeile nach oben und unten verwenden, um zur nächsten möglichen Überladung in der Liste zu navigieren.

Zuletzt verwendete Mitglieder

IntelliSense merkt sich die Elemente, die Sie kürzlich im Popuplisten-Listenmemberfeld für den automatischen Abschluss des Objektnamens auswählen. Wenn Sie die Mitgliederliste das nächste Mal verwenden, werden die zuletzt verwendeten Member oben angezeigt. IntelliSense löscht den Verlauf der zuletzt verwendeten Member zwischen jeder Visual Studio-Sitzung.

Überschreiben

Wenn Sie eine Außerkraftsetzung eingeben und dann die LEERTASTE drücken, zeigt IntelliSense alle gültigen Basisklassenmember an, die Sie in einem Popuplistenfeld überschreiben können. Geben Sie den Rückgabetyp der Methode ein, nachdem override Sie IntelliSense aufgefordert haben, nur Methoden anzuzeigen, die denselben Typ zurückgeben. Wenn IntelliSense keine Übereinstimmungen finden kann, werden alle Basisklassenmber angezeigt.

KI-erweiterte IntelliSense

Visual Studio IntelliCode bietet erweiterte IntelliSense-Vervollständigungslisten mit künstlicher Intelligenz. IntelliCode prognostiziert die wahrscheinlich richtige API, anstatt nur eine alphabetische Liste von Mitgliedern darzustellen. Es verwendet Ihren aktuellen Codekontext und -muster, um die dynamische Liste bereitzustellen.

Automatische Codegenerierung

Hinzufügen mithilfe von

Der IntelliSense-Vorgang "Hinzufügen" fügt ihrer Codedatei automatisch erforderliche using Direktiven hinzu. Mit diesem Feature können Sie den Fokus auf den Code beibehalten, den Sie schreiben, anstatt den Fokus auf einen anderen Teil des Codes zu verschieben.

Um den Vorgang "Hinzufügen mithilfe" zu initiieren, positionieren Sie den Cursor auf einen Typverweis, der nicht aufgelöst werden kann. Wenn Sie beispielsweise eine Konsolenanwendung erstellen und dann dem Textkörper der XmlReader Methode hinzufügenMain, wird in dieser Codezeile eine rote Wellenlinie angezeigt, da der Typverweis nicht aufgelöst werden kann. Anschließend können Sie den Vorgang "Hinzufügen" über das Menü "Schnelle Aktionen " aufrufen. Das Verwenden des <Namespacemenüelements> ist nur sichtbar, wenn der Cursor im nicht aufgelösten Verweis positioniert wird.

Wenn Sie in diesem Beispiel die using Direktive automatisch zu Ihrem Code hinzufügen möchten, wählen Sie das Glühbirnensymbol aus, und wählen Sie dann "System.Xml;" aus.

Screenshot eines Vorgangs zum Hinzufügen mit einem Vorschaubild.

Fehlende Direktiven beim Einfügen hinzufügen

IntelliSense kann Ihrem Code automatisch fehlende using Direktiven hinzufügen, wenn Sie einen Typ in die Codedatei einfügen. Mit diesem Feature können Sie Zeit sparen, indem Sie die Aufgabe automatisieren, fehlende Direktiven beim Einfügen eines Typs in eine Datei hinzuzufügen.

So aktivieren Sie dieses Feature:

  1. Wählen Sie Extras>Optionen aus.
  2. Wählen Sie im linken Bereich den Text-Editor>C# (oder Visual Basic) >" aus.
  3. Wählen Sie unter "Direktiven verwenden" die Option " Fehlende Direktiven beim Einfügen hinzufügen" aus.

Entfernen und Sortieren von Verwendungen

Die Option "Entfernen und Sortieren mithilfe von" sortiert und entfernt und using entfernt extern Deklarationen, ohne das Verhalten des Quellcodes zu ändern. Im Laufe der Zeit werden Quelldateien aufgrund unnötiger und nicht organisierter using Direktiven möglicherweise zu groß und schwierig zu lesen. Mit der Option "Entfernen und Sortieren unter Verwendung" wird quellcodekomprimiert, indem nicht verwendete using Direktiven entfernt werden, und die Lesbarkeit wird durch Sortieren verbessert.

Wenn Sie diese Option verwenden möchten, wählen Sie "IntelliSense-Sortierverwendungen>bearbeiten"> in der Menüleiste aus, oder klicken Sie mit der rechten Maustaste in den Code-Editor, und wählen Sie "Entfernen" und "Verwenden sortieren" aus.

Implementieren der Schnittstelle

IntelliSense bietet eine Option, mit der Sie eine Schnittstelle implementieren können, während Sie im Code-Editor arbeiten. Normalerweise müssen Sie zum ordnungsgemäßen Implementieren einer Schnittstelle eine Methodendeklaration für jedes Element der Schnittstelle in Ihrer Klasse erstellen. Nachdem Sie den Namen einer Schnittstelle in einer Klassendeklaration eingegeben haben, zeigt IntelliSense eine Quick Actions-Glühbirne an. Die Glühbirne bietet Ihnen die Möglichkeit, die Schnittstelle automatisch mit expliziter oder impliziter Benennung zu implementieren. Unter expliziter Benennung tragen die Methodendeklarationen den Namen der Schnittstelle. Unter impliziter Benennung geben die Methodendeklarationen nicht die Schnittstelle an, zu der sie gehören. Auf eine explizit benannte Schnittstellenmethode kann nur über eine Schnittstelleninstanz und nicht über eine Klasseninstanz zugegriffen werden. Weitere Informationen finden Sie unter Explizite Schnittstellenimplementierung.

Die Implementierungsschnittstelle generiert die minimale Anzahl von Methodenstumbs, die erforderlich sind, um die Schnittstelle zu erfüllen. Wenn eine Basisklasse Teile der Schnittstelle implementiert, werden diese Stubs nicht neu generiert.

Implementieren abstrakter Basisklasse

IntelliSense bietet eine Option, mit der Sie Elemente einer abstrakten Basisklasse automatisch implementieren können, während Sie im Code-Editor arbeiten. Normalerweise erfordert die Implementierung von Membern einer abstrakten Basisklasse das Erstellen einer neuen Methodendefinition für jede Methode der abstrakten Basisklasse in Ihrer abgeleiteten Klasse. Nachdem Sie den Namen einer abstrakten Basisklasse in einer Klassendeklaration eingegeben haben, zeigt IntelliSense eine Quick Actions-Glühbirne an. Die Glühbirne bietet Ihnen die Möglichkeit, die Basisklassenmethoden automatisch zu implementieren.

Die Methoden-Stubs, die vom Feature "Abstrakte Basisklasse implementieren" generiert werden, werden vom Codeausschnitt modelliert, der in der Datei "MethodStub.snippet" definiert ist. Codeausschnitte können geändert werden. Weitere Informationen finden Sie unter Exemplarische Vorgehensweise: Erstellen eines Codeausschnitts in Visual Studio.

Generieren aus Verwendung

Mit dem Feature " Aus Verwendung generieren " können Sie Klassen und Member verwenden, bevor Sie sie definieren. Sie können einen Stub für jede Klasse, einen Konstruktor, eine Methode, eine Eigenschaft, ein Feld oder eine Enumeration generieren, die Sie verwenden möchten, aber nicht definiert sind. Sie können neue Typen und Member generieren, ohne ihren aktuellen Speicherort im Code zu verlassen. Dadurch wird die Unterbrechung ihres Workflows minimiert.

Unter jedem nicht definierten Bezeichner wird eine rote Wellenlinie angezeigt. Wenn Sie mit dem Mauszeiger auf den Bezeichner zeigen, wird eine Fehlermeldung in einer QuickInfo angezeigt. Verwenden Sie zum Anzeigen der entsprechenden Optionen eines der folgenden Verfahren:

  • Wählen Sie den nicht definierten Bezeichner aus. Unter dem Bezeichner wird eine Glühbirne für Quick Actions-Fehler angezeigt. Wählen Sie die Fehlerglühbirne aus.

  • Wählen Sie den nicht definierten Bezeichner aus, und drücken Sie dannSTRG-PUNKT+ (.).

  • Klicken Sie mit der rechten Maustaste auf den nicht definierten Bezeichner, und wählen Sie dann "Schnelle Aktionen und Umgestaltungen" aus.

Die folgenden Optionen können angezeigt werden:

  • Generate-Eigenschaft

  • Feld generieren

  • Generate-Methode

  • Klasse generieren

  • Generieren eines neuen Typs (für eine Klasse, Struktur, Schnittstelle oder Enumeration)

Generieren von Ereignishandlern

Im Code-Editor kann IntelliSense Ihnen dabei helfen, Methoden (Ereignishandler) mit Ereignisfeldern zu verknüpfen.

Wenn Sie den += Operator nach einem Ereignisfeld in einer .cs-Datei eingeben, fordert IntelliSense Sie mit der Option zum Drücken der TAB-TASTE auf. Dadurch wird eine neue Instanz eines Delegaten eingefügt, die auf die Methode verweist, die das Ereignis verarbeitet.

Screenshot einer aufgeforderten Ereignishandlermethode.

Wenn Sie die TAB-TASTE drücken, beendet IntelliSense die Anweisung automatisch und zeigt den Ereignishandlerverweis als markierten Text im Code-Editor an. Um den automatischen Ereignis-Hookup abzuschließen, fordert IntelliSense Sie auf, die TAB-TASTE erneut zu drücken, um einen leeren Stub für den Ereignishandler zu erstellen.

Screenshot einer generierten Ereignishandlermethode.

Wenn Sie erneut die TAB-TASTE drücken, fügt IntelliSense einen Methodenstub mit der richtigen Signatur hinzu und platziert den Cursor im Textkörper des Ereignishandlers.

Wenn eine von IntelliSense erstellte neue Stellvertretung auf einen vorhandenen Ereignishandler verweist, kommuniziert IntelliSense diese Informationen in der QuickInfo. Sie können diesen Verweis dann ändern; der Text ist bereits im Code-Editor ausgewählt. Andernfalls ist der automatische Ereignis-Hookup jetzt abgeschlossen.

Hinweis

Verwenden Sie den Befehl "Rückwärts navigieren" im Menü "Ansicht " (STRG+-), um zur Ereignis-Hookup-Anweisung zurückzukehren.