Dela via


C# IntelliSense

C# IntelliSense är ett språkspecifikt kodkompletteringshjälpmedel. Den är tillgänglig när du skriver C#-kod i kodredigeraren och felsöker den i kommandofönstret Omedelbart läge .

Slutförandelistor

IntelliSense-kompletteringslistorna i C# innehåller token från Listmedlemmar, Complete Word med mera. Det ger snabb åtkomst till:

  • Medlemmar av en typ eller ett namnområde

  • Variabler, kommandon och funktionsnamn

  • Kodfragment

  • Språknyckelord

  • Tilläggsmetoder

Slutförandelistorna i C# filtrerar bort irrelevanta token och avmarkerar token baserat på kontext. Mer information finns i Filtrerade slutförandelistor.

Kodfragment i slutförandelistor

I C#innehåller slutförandelistan kodfragment som hjälper dig att enkelt infoga fördefinierade kodkroppar i ditt program. Kodfragment visas i slutförandelistan som kodfragmentets genvägstext. Mer information om kodfragment som är tillgängliga i C# som standard finns i C#-kodfragment.

Språknyckelord i slutförandelistor

Slutförandelistan innehåller nyckelord för C#-språk som hjälper dig att infoga dem i ditt program. Mer information om nyckelord för C#-språk finns i C#-nyckelord.

Tilläggsmetoder i slutförandelistor

I C#innehåller slutförandelistan tilläggsmetoder som finns i omfånget.

Tilläggsmetoder använder en annan ikon än instansmetoder. När både en instansmetod och tilläggsmetod med samma namn finns i omfånget visas tilläggsmetodikonen i listan över slutförda.

Anmärkning

För String objekt visas inte alla tilläggsmetoder i slutförandelistan.

Filtrerade kompletteringslistor

IntelliSense tar bort onödiga medlemmar från slutförandelistan med hjälp av filter. C# filtrerar de slutförandelistor som visas för följande objekt:

  • Gränssnitt och basklasser: IntelliSense tar automatiskt bort onödiga objekt från gränssnitts- och basklassens kompletteringslistor, Den här borttagningen innehåller klassdeklarationsbaser och gränssnittslistor och villkorslistor. Uppräkningar visas till exempel inte i slutförandelistan för basklasser, eftersom uppräkningar inte kan användas för basklasser. Slutförandelistan över basklasser innehåller endast gränssnitt och namnområden. Om du väljer ett objekt i listan och sedan skriver en kommanyckel tar IntelliSense bort basklasserna från slutförandelistan. Det gör det eftersom C# inte stöder flera arv. Samma beteende inträffar också för villkorssatser.

  • Attribut: När du använder ett attribut för en typ filtreras slutförandelistan så att listan endast innehåller de typer som kommer från de namnområden som innehåller dessa typer. Till exempel Attribute.

  • Catch-satser: Endast giltiga try-catch-nyckelord visas i slutförandelistan.

  • Objektinitierare: Endast medlemmar som kan initieras visas i slutförandelistan.

  • nytt nyckelord: När du skriver new och sedan trycker på blankstegsnyckeln visas en slutförandelista. IntelliSense väljer automatiskt ett objekt i listan baserat på kontexten i koden. Till exempel väljer IntelliSense automatiskt objekt i slutförandelistan för deklarationer och för returinstruktioner i metoder.

  • uppräkningsnyckelord: När du trycker på blankstegsnyckeln efter ett likhetstecken för en uppräkningstilldelning visas en slutförandelista. IntelliSense väljer automatiskt ett objekt i listan baserat på kontexten i koden. Till exempel väljer IntelliSense automatiskt objekt i slutförandelistan när du har skrivet nyckelordet return och när du gör en deklaration.

  • as och is operatorer: IntelliSense visar automatiskt en filtrerad slutförandelista när du trycker på blankstegsnyckeln när du har angett nyckelordet as eller is .

  • Händelser: När du skriver nyckelordet eventinnehåller slutförandelistan endast ombudstyper.

  • Parameterhjälp: IntelliSense sorterar automatiskt efter den första metodöverlagringen som matchar parametrarna när du anger dem. Om det finns flera tillgängliga metodöverlagringar kan du använda upp- och nedpilarna för att gå till nästa möjliga överlagring i listan.

Senast använda medlemmar

IntelliSense kommer ihåg de medlemmar som du nyligen valde i rutan Medlemmar i popup-listan för automatisk slutförande av objektnamn. Nästa gång du använder medlemslistan visas de senast använda medlemmarna högst upp. IntelliSense rensar historiken för de senast använda medlemmarna mellan varje Visual Studio-session.

åsidosätta / överstyra

När du skriver åsidosättning och sedan trycker på Blanksteg visar IntelliSense alla giltiga basklassmedlemmar som du kan åsidosätta i en popup-listruta. Om du skriver returtypen för metoden efter override uppmanas IntelliSense att endast visa metoder som returnerar samma typ. Om IntelliSense inte kan hitta några matchningar visas alla basklassmedlemmar.

AI-förbättrad IntelliSense

Visual Studio IntelliCode tillhandahåller intelliSense-kompletteringslistor med artificiell intelligens. IntelliCode förutsäger det mest sannolika korrekta API:et att använda i stället för att bara presentera en alfabetisk lista med medlemmar. Den använder din aktuella kodkontext och dina mönster för att tillhandahålla den dynamiska listan.

Automatisk kodgenerering

Lägg till med hjälp av

Åtgärden Lägg till med IntelliSense lägger automatiskt till nödvändiga using direktiv i kodfilen. Med den här funktionen kan du behålla fokus på den kod som du skriver i stället för att kräva att du flyttar fokus till en annan del av koden.

Om du vill initiera åtgärden Lägg till med placerar du markören på en typreferens som inte kan matchas. När du till exempel skapar ett konsolprogram och sedan lägger till XmlReader i metodens brödtext Main visas en röd växlingslinje på den kodraden eftersom typreferensen inte kan matchas. Du kan sedan anropa åtgärden Lägg till med hjälp avsnabbåtgärder via menyn Snabbåtgärder . Menyalternativet med namnrymd <> visas bara när markören är placerad på den olösta referensen.

I det här exemplet, om du vill lägga till direktivet automatiskt i using koden, väljer du ikonen för glödlampan för felet och väljer sedan Att använda System.Xml;.

Skärmbild som visar åtgärden Lägg till med hjälp av en förhandsgranskningsbild.

Lägg till saknade med hjälp av direktiv vid klistra in

IntelliSense kan automatiskt lägga till saknade using direktiv i koden när du klistrar in en typ i kodfilen. Den här funktionen sparar tid genom att automatisera uppgiften att lägga till saknade med hjälp av direktiv när du klistrar in en typ i en fil.

Så aktiverar du funktionen:

  1. Välj Verktyg>Alternativ.
  2. Välj Textredigeraren>C# (eller Visual Basic) >Avancerat i den vänstra rutan.
  3. Under Använda direktiv väljer du Lägg till saknas med hjälp av direktiv vid klistra in.

Ta bort och sortera användningar

Alternativet Ta bort och sortera användningar sorterarusing och tar bort och extern deklarationer utan att ändra källkodens beteende. Med tiden kan källfilerna bli för stora och svåra att läsa på grund av onödiga och oorganiserade using direktiv. Alternativet Ta bort och sortera användningar komprimerar källkoden genom att ta bort oanvända using direktiv och förbättrar läsbarheten genom att sortera dem.

Om du vill använda det här alternativet väljer du Redigera>IntelliSense-sorteringsanvändningar> i menyraden eller högerklickar i kodredigeraren och väljer Ta bort och sortera användningar.

Implementera gränssnitt

IntelliSense tillhandahåller ett alternativ som hjälper dig att implementera ett gränssnitt medan du arbetar i kodredigeraren. För att implementera ett gränssnitt korrekt måste du normalt skapa en metoddeklaration för varje medlem i gränssnittet i klassen. När du har skrivt namnet på ett gränssnitt i en klassdeklaration visar IntelliSense en snabbåtgärdslampa . Glödlampan ger dig möjlighet att implementera gränssnittet automatiskt med explicit eller implicit namngivning. Under explicit namngivning bär metoddeklarationerna namnet på gränssnittet. Under implicit namngivning anger metoddeklarationerna inte det gränssnitt som de tillhör. En explicit namngiven gränssnittsmetod kan bara nås via en gränssnittsinstans och inte via en klassinstans. Mer information finns i Explicit gränssnittsimplementering.

Implement-gränssnittet genererar det minsta antal metodstubbar som krävs för att uppfylla gränssnittet. Om en basklass implementerar delar av gränssnittet återskapas inte dessa stubs.

Implementera abstrakt basklass

IntelliSense tillhandahåller ett alternativ som hjälper dig att implementera medlemmar i en abstrakt basklass automatiskt när du arbetar i kodredigeraren. För att implementera medlemmar i en abstrakt basklass krävs normalt att du skapar en ny metoddefinition för varje metod i den abstrakta basklassen i din härledda klass. När du har skrivt namnet på en abstrakt basklass i en klassdeklaration visar IntelliSense en snabbåtgärdslampa . Glödlampan ger dig möjlighet att implementera basklassmetoderna automatiskt.

De metodstubbar som genereras av funktionen Implementera abstrakt basklass modelleras av kodfragmentet som definieras i filen MethodStub.snippet. Kodfragment kan ändras. Mer information finns i Genomgång: Skapa ett kodfragment i Visual Studio.

Generera från användning

Med funktionen Generera från användning kan du använda klasser och medlemmar innan du definierar dem. Du kan generera en stub för valfri klass, konstruktor, metod, egenskap, fält eller uppräkning som du vill använda men som inte har definierats. Du kan generera nya typer och medlemmar utan att lämna din aktuella plats i kod. Detta minimerar avbrott i arbetsflödet.

En röd växlingslinje visas under varje odefinierad identifierare. När du hovrar muspekaren på identifieraren visas ett felmeddelande i en knappbeskrivning. Om du vill visa lämpliga alternativ använder du någon av följande procedurer:

  • Välj den odefinierade identifieraren. En snabbåtgärdsfellampa visas under identifieraren. Välj fellampan.

  • Välj den odefinierade identifieraren och tryck sedan påCtrl-period+ (.).

  • Högerklicka på den odefinierade identifieraren och välj sedan Snabbåtgärder och Omstrukturera.

Följande alternativ kan visas:

  • Generera egenskap

  • Generera fält

  • Generera metod

  • Generera klass

  • Generera ny typ (för en klass, struct, gränssnitt eller uppräkning)

Generera händelsehanterare

I kodredigeraren kan IntelliSense hjälpa dig att ansluta metoder (händelsehanterare) till händelsefält.

När du skriver operatorn += efter ett händelsefält i en .cs fil uppmanar IntelliSense dig att trycka på tabbtangenten . Detta infogar en ny instans av ett ombud som pekar på metoden som hanterar händelsen.

Skärmbild som visar en frågad metod för att ansluta händelsehanterare.

Om du trycker på tabbtangenten slutför IntelliSense automatiskt instruktionen åt dig och visar händelsehanterarreferensen som markerad text i kodredigeraren. För att slutföra den automatiska händelseanslutningen uppmanar IntelliSense dig att trycka på tabbtangenten igen för att skapa en tom stub för händelsehanteraren.

Skärmbild som visar en genererad händelsehanterarmetod.

Om du trycker på tabbtangenten igen lägger IntelliSense till en metodstub med rätt signatur och placerar markören i brödtexten för händelsehanteraren.

Om ett nytt ombud som skapats av IntelliSense refererar till en befintlig händelsehanterare kommunicerar IntelliSense den här informationen i knappbeskrivningen. Du kan sedan ändra den här referensen. texten är redan markerad i kodredigeraren. Annars är automatisk händelsekoppling nu klar.

Anmärkning

Använd kommandot Navigera bakåt på menyn Visa (Ctrl+-) för att återgå till händelsekopplingsinstrukturen.