## 15.8 Code Snippets (Codeausschnitte) Visual Studio 2010 enthält ein Feature, das während des Programmierens sehr hilfreich sein kann. Es handelt sich um die Code Snippets, die in der Dokumentation auch unter dem Begriff Codeausschnitte zu finden sind. Wie kann diese Hilfe aussehen? Nehmen wir an, Sie beabsichtigen, eine for-Schleife zu implementieren. Das Grundkonstrukt dieser Schleife ist immer identisch und würde sich also generell dazu anbieten, automatisch so in den Code eingespielt zu werden, dass der Entwickler nur noch Startwert, Austrittsbedingung und Schrittweite angibt. Genau das leisten Code Snippets bzw. Codeausschnitte. Codeausschnitte haben einen Namen. Der, der eine leere for-Schleife erzeugt, heißt beispielsweise for. Visual Studio 2010 wird mit einer ganzen Reihe von Codeausschnitten geliefert, die Sie nutzen und auch durch eigene ergänzen können. ### 15.8.1 Codeausschnitte einfügen Code Snippets können Sie auf drei verschiedene Arten einfügen: Wenn Sie den Bezeichner kennen, tragen Sie diesen in den Code ein und drücken anschließend die -Taste. Der durch den Codeausschnitt beschriebene Code wird sofort in den Codeeditor eingespielt. Positionieren Sie den Eingabecursor an der Position, an der das Code Snippet eingefügt werden soll. Öffnen Sie dann das Kontextmenü, und wählen Sie den Menüpunkt Ausschnitt einfügen Ihnen wird daraufhin eine Auswahl mehrerer Komponenten angeboten. Klicken Sie hier auf Visual C#, und in der IntelliSense-Hilfe werden die Ihnen zur Verfügung stehenden Snippets angezeigt, aus denen Sie das von Ihnen gewünschte auswählen. Öffnen Sie das Menü Bearbeiten, und wählen Sie den Untermenüpunkt IntelliSense und anschließend Ausschnitt einfügen Der weitere Ablauf ist wie unter Punkt 2 beschrieben. Je nachdem, welchen Codeausschnitt Sie hinzugefügt haben, sind möglicherweise Nacharbeiten erforderlich. Bei der oben beschriebenen for-Schleife sind das die Deklaration des Schleifenzählers und die Angabe der Austrittsbedingung. Visual Studio zeigt die entsprechenden Elemente in einer anderen Hintergrundfarbe an (siehe Abbildung 15.32). Hier klicken, um das Bild zu vergrößern Abbildung 15.32 Die durch ein Code Snippet hinzugefügte for-Schleife Einige Codeausschnitte sind umschließende Codeausschnitte, mit deren Hilfe Sie Codezeilen markieren und dann einen Codeausschnitt auswählen können, der die markierten Codezeilen einschließt. Durch das Markieren von Codezeilen und das anschließende Aktivieren des for-Codeausschnitts wird beispielsweise eine for-Schleife erstellt, die die markierten Codezeilen innerhalb des Schleifenblocks enthält. ### 15.8.2 Anatomie eines Codeausschnitts Bei Codeausschnitten handelt es sich um XML-Dateien mit der Dateinamenerweiterung .snippet. Wir wollen uns nun exemplarisch die Datei ansehen, die für den Codeausschnitt der for-Schleife verantwortlich ist.
    <?xml version="1.0" encoding="utf-8"?>
    <CodeSnippets xmlns="...">
      <CodeSnippet Format="1.0.0">
        <Header>
          <Title>for</Title>
            <Shortcut>for</Shortcut>
              <Description>
                Codeausschnitt für for-Schleife
              </Description>
              <Author>Microsoft Corporation</Author>
              <SnippetTypes>
                <SnippetType>Expansion</SnippetType>
                <SnippetType>SurroundsWith</SnippetType>
              </SnippetTypes>
        </Header>
        <Snippet>
          <Declarations>
            <Literal>
              <ID>index</ID>
              <Default>i</Default>
              <ToolTip>Index</ToolTip>
            </Literal>
            <Literal>
              <ID>max</ID>
              <Default>length</Default>
              <ToolTip>Maximale Länge</ToolTip>
            </Literal>
          </Declarations>
          <Code Language="csharp">
            <![CDATA[for (int $index$ = 0; $index$ < $max$; $index$++)
            {
              $selected$ $end$
            }]]>
          </Code>
        </Snippet>
      </CodeSnippet>
    </CodeSnippets>
Das ganze Dokument mit all seinen XML-Tags wollen wir an dieser Stelle nicht analysieren. Sollten Sie sich dafür interessieren, um einen eigenen Codeausschnitt zu definieren oder einen vorhandenen zu ändern, suchen Sie in der Dokumentation nach dem mit Schemareferenz für Codeausschnitte betitelten Dokument. Die meisten XML-Tags sind wahrscheinlich aufgrund ihrer Namensgebung sowieso selbsterklärend. Code Snippets sind natürlich sprachspezifisch. Besonders bedacht worden sind die VB-Programmierer, denen weitaus mehr Snippets zur Verfügung gestellt werden als dem C#-Programmierer. Sie brauchen sich nur die Dateilisten anzusehen, die die Suchoperation des Betriebssystems anzeigt, wenn Sie nach *.snippet suchen lassen. Die Snippets, die für C# vordefiniert sind, finden Sie unter: