IntelliSense in Visual Studio

IntelliSense ist eine Codevervollständigen-Hilfe, die Features enthält, die Ihnen helfen, mehr über den verwendeten Code zu erfahren, die eingegebenen Parameter nachzuverfolgen und Aufrufe von Eigenschaften und Methoden mit nur wenigen Tastenanschlägen hinzuzufügen.

Zu diesen Features gehören:

Viele Aspekte von IntelliSense sind sprachspezifisch. Weitere Informationen zu IntelliSense für verschiedene Sprachen finden Sie in den Artikeln, die im Abschnitt Verwandte Inhalte aufgeführt sind.

Zusätzlich zu IntelliSense bietet Visual Studio KI-gestützte Codeabschlusse über GitHub Copilot. Inlinevorschläge in Copilot arbeiten mit IntelliSense zusammen, um Vervollständigungen für ganze Zeilen und mehrere Zeilen bereitzustellen. Wenn IntelliSense aktiv ist, werden Copilot-Vervollständigungen vorübergehend unterdrückt, damit Sie sich auf die IntelliSense-Liste konzentrieren können. Nachdem Sie die IntelliSense-Auswahl verworfen oder bestätigt haben, werden die Copilot-Vervollständigungen automatisch wieder aufgenommen. Weitere Informationen finden Sie unter Erste Schritte mit GitHub Copilot-Vervollständigungen.

Zusätzlich zu IntelliSense bietet Visual Studio KI-gestützte Codeabschlusse über GitHub Copilot. Inlinevorschläge in Copilot arbeiten mit IntelliSense zusammen, um Vervollständigungen für ganze Zeilen und mehrere Zeilen bereitzustellen. Weitere Informationen finden Sie unter Erste Schritte mit GitHub Copilot-Vervollständigungen.

Member auflisten

Eine Liste gültiger Member von einem Typ oder Namespace wird angezeigt, nachdem Sie ein Triggerzeichen, beispielsweise einen Punkt (.) im verwalteten Code oder :: in C++ eingegeben haben. Wenn Sie mit der Eingabe von Zeichen fortfahren, filtern die Listenfilter nur die Elemente, die mit diesen Zeichen beginnen oder der Anfang eines Worts innerhalb des Namens mit diesen Zeichen beginnt. IntelliSense führt außerdem einen Abgleich für Zeichenketten mit gemischter Groß- und Kleinschreibung durch, sodass Sie nur den ersten Buchstaben des klein oder groß geschriebenen Worts innerhalb der Zeichenkette eingeben müssen, damit Ihnen die Membernamen angezeigt werden.

Nachdem Sie ein Element ausgewählt haben, können Sie es in Ihren Code einfügen, indem Sie die TAB-TASTE drücken oder ein Leerzeichen eingeben. Wenn Sie ein Element auswählen und einen Punkt eingeben, wird das Element gefolgt von dem Punkt angezeigt. Dadurch wird eine andere Memberliste aufgerufen. Wenn Sie ein Element auswählen, aber bevor Sie es einfügen, erhalten Sie QuickInfo- für das Element.

In der Memberliste stellt das Symbol links den Elementtyp dar, z. B. Namespace, Klasse, Funktion oder Variable. Die Liste kann lang sein, sodass Sie PgUp- und PgDn- drücken können, um in der Liste nach oben oder unten zu navigieren.

Screenshot der IntelliSense-Listenmitglieder-Funktion.

Sie können das Feature „Members auflisten” manuell aufrufen, indem Sie Strg+J eingeben, die Option Bearbeiten>IntelliSense>Members auflisten auswählen, oder die Schaltfläche Members auflisten in der Editor-Toolbar anklicken. Wenn Sie sie in einer leeren Zeile oder außerhalb eines erkennbaren Bereichs aufrufen, zeigt die Liste Symbole im globalen Namespace an.

Um Listenmitglieder standardmäßig zu deaktivieren, sodass sie nur angezeigt werden, wenn sie ausdrücklich aufgerufen werden, wechseln Sie zu Tools>Optionen>Text-Editor>Alle Sprachen und deaktivieren Sie Automatische Listenelemente. Um Listenmitglieder nur für eine bestimmte Sprache zu deaktivieren, wechseln Sie zu "Allgemeine Einstellungen" für diese Sprache.

Um Listenmitglieder standardmäßig zu deaktivieren, sodass sie nicht angezeigt werden, es sei denn, sie werden ausdrücklich aufgerufen, wechseln Sie zu Tools>Options>Languages>Defaults>General>Statement Completion und deaktivieren Sie Auto-Liste Mitglieder. Um Listenmitglieder nur für eine bestimmte Sprache zu deaktivieren, wechseln Sie zu "Allgemeine Einstellungen" für diese Sprache.

Sie können auch in den Vorschlagsmodus wechseln, in dem nur der eingegebene Text in den Code eingefügt wird. Wenn Sie beispielsweise einen Bezeichner eingeben, der nicht in der Liste enthalten ist, und drücken Sie tab, ersetzt der Eintrag im Abschlussmodus den eingegebenen Bezeichner. Um zwischen Vervollständigungs- und Vorschlagsmodus zu wechseln, drücken Sie Strg+Alt+Leertaste oder wählen Sie Bearbeiten>IntelliSense>Zwischen automatischer und tabstoppbasierter IntelliSense-Vervollständigung umschalten aus.

Parameterinformationen

Parameterinformationen zeigen Ihnen die Anzahl, Namen und Typen von Parametern, die eine Methode, einen generischen Attributtypparameter (in C#) oder eine Vorlage (in C++) benötigt.

Der Parameter fett formatiert zeigt den nächsten Parameter an, den Sie benötigen, während Sie die Funktion eingeben. Verwenden Sie für überladene Funktionen die Nach-oben-Taste und die Nach-unten-Taste, um Parameterinformationen der Überladungen anzuzeigen.

Screenshot des Features IntelliSense-Parameterinformationen.

Wenn Sie XML-Dokumentationskommentare zu Funktionen und Parametern hinzufügen, zeigt die Parameterinfo diese Kommentare an. Weitere Informationen finden Sie unter Anzeigen von XML-Codekommentaren.

Sie können Parameterinformationen manuell öffnen, indem Sie Edit>IntelliSense>Parameterinformationen auswählen, durch Drücken von STRG+UMSCHALT+LEERTASTE, oder indem Sie die Schaltfläche "Parameterinformationen" in der Editor-Symbolleiste auswählen.

Schnellinfos

QuickInfo zeigt die vollständige Deklaration für jeden Bezeichner in Ihrem Code an.

Screenshot des IntelliSense-QuickInfo-Features.

Wenn Sie ein Mitglied im Feld "Mitglieder auflisten" auswählen, wird auch QuickInfo angezeigt.

Screenshot des IntelliSense-Features

Sie können QuickInfo manuell aufrufen, indem Sie Bearbeiten>IntelliSense>QuickInfoauswählen, indem Sie STRG+Kdrücken, STRG+I, oder indem Sie die Schaltfläche QuickInfo auf der Editorsymbolleiste auswählen.

Wenn eine Funktion überladen ist, zeigt IntelliSense möglicherweise keine Informationen für alle Formen der Überladung an.

Gehen Sie, um die Schnellinfo zu deaktivieren, zu Tools>Optionen>Text-Editor>Alle Sprachen und deaktivieren Sie Quickinfo beim Draufzeigen im Bereich Einstellungen-

Wechseln Sie zum Deaktivieren der Schnellinfo zu Tools>Optionen>Sprachen und deaktivieren Sie Schnellinfo bei Zeigerbewegung im Abschnitt Allgemein.

Word fertigstellen

Die Option Wort vervollständigen ergänzt den Rest eines Variablen-, Befehls- oder Funktionsnamens, sobald Sie so viele Zeichen eingegeben haben, dass der Name eindeutig erkannt werden kann. Sie können „Wort vervollständigen“ aufrufen, indem Sie auf Bearbeiten>IntelliSense>Wort vervollständigen klicken, die TastenStrg+Leertaste drücken oder die Schaltfläche Wort vervollständigen in der Editor-Toolbar anklicken.

IntelliSense-Optionen

IntelliSense-Optionen sind standardmäßig aktiviert.

Um die Option zu deaktivieren, navigieren Sie zu Tools>Optionen>Sprachen>Standardeinstellungen>Allgemein>Anweisungsvervollständigung und deaktivieren Sie Parameterinformationen oder Members automatisch auflisten.

Um die Option zu deaktivieren, navigieren Sie zu Tools>Optionen>Text-Editor>Alle Sprachen und deaktivieren Sie Parameterinformationen oder Members automatisch auflisten.

Tipp

Um die Darstellung von Benutzeroberflächenelementen in Visual Studio zu ändern, wechseln Sie zu Tools>Options>Environment>Fonts and Colors. Weitere Informationen zu diesen Einstellungen und deren Interaktion finden Sie im Dialogfeld Schriftarten und Farben, Umgebung, Optionen.

IntelliSense-Symbole

Die Symbole in IntelliSense vermitteln durch Symbolmodifizierer zusätzliche Bedeutung. Zu diesen Symbolen zählen Sterne, Herzen und Schlösser, die über dem Objektsymbol liegen und „gesperrt“, „intern“ oder „privat“ bedeuten.

Ikone Zugänglichkeit Beschreibung
Modifizierer für öffentliche Symbole Öffentliche Klasse Der Zugriff ist nicht eingeschränkt.
Geschützter Symbolmodifizierer Geschützte Klasse Access ist auf die von der enthaltenden Klasse abgeleiteten Klassen oder Typen beschränkt.
Geschützter interner Symbolmodifizierer Geschützte interne Klasse Access ist auf die aktuelle Assembly oder Typen beschränkt, die von der enthaltenden Klasse abgeleitet sind.
interner Symbolmodifizierer Interne Klasse Der Zugriff ist auf die aktuelle Assembly beschränkt.
Privater Symbolmodifizierer Privater Kurs Access ist auf die enthaltende Klasse oder Typen beschränkt, die von der enthaltenden Klasse innerhalb der aktuellen Assembly abgeleitet sind. (Verfügbar seit C# 7.2.)
Ikone Zugänglichkeit Beschreibung
Modifizierer für öffentliche Symbole Öffentliche Klasse Der Zugriff ist nicht eingeschränkt.
Geschützter Symbolmodifizierer Geschützte Klasse Access ist auf die von der enthaltenden Klasse abgeleiteten Klassen oder Typen beschränkt.
Geschützter interner Symbolmodifizierer Geschützte interne Klasse Access ist auf die aktuelle Assembly oder Typen beschränkt, die von der enthaltenden Klasse abgeleitet sind.
interner Symbolmodifizierer Interne Klasse Der Zugriff ist auf die aktuelle Assembly beschränkt.
Privater Symbolmodifizierer Privater Kurs Access ist auf die enthaltende Klasse oder Typen beschränkt, die von der enthaltenden Klasse innerhalb der aktuellen Assembly abgeleitet sind. (Verfügbar seit C# 7.2.)

Fehlerbehebung bei IntelliSense

Die IntelliSense-Optionen funktionieren in bestimmten Fällen möglicherweise nicht wie erwartet.

  • Der Cursor befindet sich unter einem Codefehler: Möglicherweise können Sie IntelliSense nicht verwenden, wenn eine unvollständige Funktion oder ein anderer Fehler im Code oberhalb des Cursors vorhanden ist, da IntelliSense die Codeelemente möglicherweise nicht analysieren kann. Sie können dieses Problem beheben, indem Sie den entsprechenden Code kommentieren.

  • Der Cursor befindet sich in einem Codekommentar: Sie können IntelliSense nicht verwenden, wenn sich der Cursor in einem Kommentar in der Quelldatei befindet.

  • Der Cursor befindet sich in einem Zeichenfolgenliteral: Sie können IntelliSense nicht verwenden, wenn sich der Cursor innerhalb der Anführungszeichen um ein Zeichenfolgenliteral befindet, wie im folgenden Beispiel dargestellt:

    MessageBox( hWnd, "String literal|")
    
  • Die automatischen Optionen sinddeaktiviert: Standardmäßig funktioniert IntelliSense automatisch, aber Sie können sie deaktivieren. Auch wenn die automatische Vervollständigung von Anweisungen deaktiviert ist, können Sie eine IntelliSense-Funktion aufrufen.