Dela via


Genomgång: Skapa ett kodfragment i Visual Studio

Du kan öka produktiviteten och tillförlitligheten genom att använda kodfragment för att minska den tid som ägnas åt att skriva repetitiv kod eller söka efter exempel. Kodfragment är förauktorerade kodstycken som är redo att infogas i ditt program.

Du kan skapa egna kodfragment och lägga till dem i kodfragmenten som Visual Studio redan innehåller. Den här artikeln beskriver hur du skapar ett kodfragment i bara några få steg. Du skapar en XML-fil, fyller i lämpliga element och lägger till koden i filen. Du kan också använda ersättningsparametrar och projektreferenser. Sedan importerar du kodfragmentet till Visual Studio-installationen.

Skapa ett kodfragment

  1. Öppna Visual Studio och välj Fortsätt utan kodstartskärmen .

    Skärmbild av startfönstret med alternativet Fortsätt utan kod valt.

  2. På menyraden väljer du Arkiv>Ny fil eller anger Ctrl+N.

  3. I dialogrutan Ny fil väljer du XML-fil och sedan Öppna.

    Skärmbild av dialogrutan Ny fil med alternativet XML-fil markerat.

  4. Klistra in följande grundläggande kodfragmentmall i kodredigeraren.

    <?xml version="1.0" encoding="utf-8"?>
    <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
        <CodeSnippet Format="1.0.0">
            <Header>
                <Title></Title>
            </Header>
            <Snippet>
                <Code Language="">
                    <![CDATA[]]>
                </Code>
            </Snippet>
        </CodeSnippet>
    </CodeSnippets>
    
  5. Ange rubriken Kvadratrot i kodfragmentelementet Title .

  6. Language I elementets Code attribut fyller du i CSharp för ett C#-kodfragment eller VB för Visual Basic.

    Tips/Råd

    Om du vill se alla tillgängliga språkvärden läser du Attribut i schemareferensen kodfragment.

  7. Lägg till följande kodfragment i CDATA avsnittet inuti elementet Code .

    För C#:

        <![CDATA[double root = Math.Sqrt(16);]]>
    

    För Visual Basic:

        <![CDATA[Dim root = Math.Sqrt(16)]]>
    

    Anmärkning

    Du kan inte ange hur du ska formatera eller dra in kodrader i avsnittet i CDATA ett kodfragment. Vid infogning formaterar språktjänsten den infogade koden automatiskt.

  8. Spara kodfragmentet var som helst som SquareRoot.snippet.

Importera kodfragmentet

  1. Om du vill importera kodfragmentet till Visual Studio-installationen väljer du Verktyg>Kodfragmenthanteraren eller trycker på Ctrl+K, B.

  2. I Kodfragmenthanteraren väljer du knappen Importera .

  3. Gå till platsen för kodfragmentet, välj det och välj Öppna.

  4. I dialogrutan Importera kodfragment väljer du mappen Mina kodfragment i den högra rutan. Välj Avsluta, och välj OK.

    Kodfragmentet kopieras till någon av följande platser, beroende på kodspråket:

    • %USERPROFILE%\Documents\Visual Studio 2022\Code Snippets\Visual C#\My Code Snippets
    • %USERPROFILE%\Documents\Visual Studio 2022\Code Snippets\Visual Basic\My Code Snippets
    • %USERPROFILE%\Documents\Visual Studio 2019\Code Snippets\Visual C#\My Code Snippets
    • %USERPROFILE%\Documents\Visual Studio 2019\Code Snippets\Visual Basic\My Code Snippets
  5. Testa kodfragmentet genom att öppna ett C#- eller Visual Basic-projekt. När en kodfil är öppen i redigeraren utför du någon av följande åtgärder:

    • På menyraden i Visual Studio väljer du Redigera>IntelliSense>Insert-kodfragment.
    • Högerklicka och välj Kodfragment>Infoga kodfragment på snabbmenyn.
    • Tryck på Ctrl+K, X från tangentbordet.
  6. Öppna Mina kodfragment och dubbelklicka på kodfragmentet med namnet Kvadratrot. Kodfragmentkoden infogas i kodfilen.

Beskrivnings- och genvägsfält

Beskrivningsfältet innehåller mer information om kodfragmentet när det visas i Kodfragmenthanteraren. Genvägen är en tagg som du kan skriva för att infoga kodfragmentet.

  1. Om du vill redigera kodfragmentet öppnar du kodfragmentfilen från någon av följande platser, beroende på kodspråket:

    • %USERPROFILE%\Documents\Visual Studio 2022\Code Snippets\Visual C#\My Code Snippets/SquareRoot.snippet
    • %USERPROFILE%\Documents\Visual Studio 2022\Code Snippets\Visual Basic\My Code Snippets/SquareRoot.snippet
    • %USERPROFILE%\Documents\Visual Studio 2019\Code Snippets\Visual C#\My Code Snippets/SquareRoot.snippet
    • %USERPROFILE%\Documents\Visual Studio 2019\Code Snippets\Visual Basic\My Code Snippets/SquareRoot.snippet

    Tips/Råd

    Eftersom du redigerar filen i katalogen där Visual Studio placerade den behöver du inte importera den igen till Visual Studio.

  2. Lägg till Author, Descriptionoch Shortcut element i elementet Header och fyll i dem.

  3. Bekräfta att elementet Header ser ut ungefär som i följande exempel och spara filen.

    <Header>
        <Title>Square Root</Title>
        <Author>Myself</Author>
        <Description>Calculates the square root of 16.</Description>
        <Shortcut>sqrt</Shortcut>
    </Header>
    
  4. Öppna Visual Studio Code Snippets Manager och välj kodfragmentet. Observera att fälten Beskrivning, Författare och Genväg nu är ifyllda i den högra rutan.

    Skärmbild som visar en beskrivning av kodfragmentet i Kodfragmenthanteraren.

  5. Om du vill testa genvägen öppnar du projektet du använde tidigare, skriver sqrt i redigeraren och trycker på Tabb en gång för Visual Basic eller två gånger för C#. Kodfragmentkoden infogas.

Ersättningsparametrar

Du kanske vill att användaren ska ersätta delar av ett kodfragment. Du kanske till exempel vill att användaren ska ersätta ett variabelnamn med ett i det aktuella projektet.

Du kan ange två typer av ersättningar: literaler och objekt.

  • Använd literalelementet för att identifiera en ersättning för kod som helt finns i kodfragmentet som kan anpassas efter att ha infogats i koden. Till exempel ett sträng- eller numeriskt värde.

  • Använd objektelementet för att identifiera ett objekt som kodfragmentet kräver, men som förmodligen har definierats utanför kodfragmentet. Till exempel en objektinstans eller en kontroll.

Du kan använda ett Literal element i SquareRoot.snippet-filen för att hjälpa användarna att enkelt ändra talet för att beräkna kvadratroten för.

  1. Ändra elementet på Snippet följande sätt i filen SquareRoot.snippet:

    <Snippet>
      <Code Language="CSharp">
        <![CDATA[double root = Math.Sqrt($Number$);]]>
      </Code>
      <Declarations>
        <Literal>
          <ID>Number</ID>
          <ToolTip>Enter the number you want the square root of.</ToolTip>
          <Default>16</Default>
        </Literal>
      </Declarations>
    </Snippet>
    

    Observera att literalersättningen hämtar ett ID, Number. Du refererar till det ID:t i kodfragmentet genom att omge det med $ tecken, enligt följande:

    <![CDATA[double root = Math.Sqrt($Number$);]]>
    
  2. Spara kodfragmentfilen.

  3. Öppna ett projekt och infoga kodfragmentet.

    Kodfragmentet infogas och den redigerbara literalen är markerad som ersättning. Hovra över ersättningsparametern för att se knappbeskrivningen för värdet.

    Skärmbild av kodfragmentets ersättningsparameterknappbeskrivning i Visual Studio.

    Tips/Råd

    Om det finns mer än en utbytbar parameter i ett kodfragment kan du trycka på Tabb för att navigera från en parameter till en annan för att ändra värdena.

Importera ett namnområde

Du kan använda ett kodfragment för att lägga till ett using direktiv (C#) eller Imports -instruktion (Visual Basic) genom att inkludera importelementet. För .NET Framework-projekt kan du också lägga till en referens till projektet med hjälp av elementet Referenser.

Följande XML visar ett kodfragment som använder metoden File.Exists i System.IO namnområdet och definierar därför elementet Imports för att importera System.IO namnområdet.

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
  <CodeSnippet Format="1.0.0">
    <Header>
      <Title>File Exists</Title>
      <Shortcut>exists</Shortcut>
    </Header>
    <Snippet>
      <Code Language="CSharp">
        <![CDATA[var exists = File.Exists("C:\\Temp\\Notes.txt");]]>
      </Code>
      <Imports>
        <Import>
          <Namespace>System.IO</Namespace>
        </Import>
      </Imports>
    </Snippet>
  </CodeSnippet>
</CodeSnippets>