Codeausschnitte in Visual Studio erstellen und nutzen

Entwickler sind faul. Genauso wie Mathematiker. Das dachten sich wahrscheinlich auch die Entwickler bei Microsoft, weshalb sie in Visual Studio eine sehr sinnvolle Funktion implementiert haben, die sogenannte IntelliSense-Technologie, welche dem Entwickler schon einiges an Arbeit abnimmt.

Neben der IntelliSense-Technologie gibt es dann aber auch noch die Codeausschnitte, erreichbar über den Codeausschnitt-Manager unter dem Menüpunkt "Tools".

So braucht man beispielsweise nur propfull mit darauffolgendem Doppeldruck auf die Tabulator-Taste - voila, fertig ist eine vollständige Property mit Getter und Setter.

Warum sollten wir dies tun??

Nun sollten gute Anwendungen/Apps auf dem MVVM-Pattern basieren, sodass Code und Design voneinander getrennt sind. Eine typische Property sieht demnach wiefolgt aus:

private string _MyProperty;
public string MyProperty
{
    get { return _MyProperty; }
    set { Set(() => MyProperty, ref _MyProperty, value); }
}

propfull erfüllt nur noch den halben Zweck. Die Set-Methode müsste manuell bearbeitet werden. Dies kann bei einer Klasse mit vielen Propertys eine langwierige Aufgabe werden und Routinearbeit ist eben doof. Dies ist ein guter Grund unser eigenes Snippet hinzuzufügen, wir nennen es einfach mal propvm.

Der eigentliche Quellcode

Dazu benötigen wir erst einmal den Code, welcher später automatisch hinzugefügt werden soll. Im Beispiel wird der oben angegebene verwendet, der Vollständigkeit halber, liste ich ihn nochmal auf.

private string _MyProperty;
public string MyProperty
{
    get { return _MyProperty; }
    set { Set(() => MyProperty, ref _MyProperty, value); }
}

Wir müssen nun entscheiden, welche Werte später vom Nutzer beziehungsweise uns eingegeben werden sollen. Hier sind es einmal der Name der Property (MyProperty) sowie der Typ (string). Der Rest wiederholt sich ja in jeder Property. Die Nutzereingaben müssen wir im Snippet dann so angeben $ID$, also zum Beispiel $property$.

Anlegen des Snippets

Das Snippet ist eigentlich nichts weiter als eine XML-Datei mit der Endung .snippet. Wir übernehmen den obigen Code, passen die Nutzerangaben an, fertig. Das Endergebnis sieht dann so aus.

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
    <CodeSnippet Format="1.0.0">
        <Header>
            <Title>propvm</Title>
            <Shortcut>propvm</Shortcut>
            <Description>Codeausschnitt für eine ViewModel-Eigenschaft inkl. dem dahinter liegenden Feld</Description>
            <Author>Julian Oster</Author>
            <SnippetTypes>
                <SnippetType>Expansion</SnippetType>
            </SnippetTypes>
        </Header>
        <Snippet>
            <Declarations>
                <Literal>
                    <ID>type</ID>
                    <ToolTip>Eigenschaftentyp</ToolTip>
                    <Default>string</Default>
                </Literal>
                <Literal>
                    <ID>property</ID>
                    <ToolTip>Eigenschaftenname</ToolTip>
                    <Default>MyProperty</Default>
                </Literal>
            </Declarations>
            <Code Language="csharp">
                <![CDATA[private $type$ _$property$;
                        public $type$ $property$
                        {
                                get { return _$property$; }
                                set { Set(() => $property$, ref _$property$, value); }
                        }
                $end$]]>
            </Code>
        </Snippet>
    </CodeSnippet>
</CodeSnippets>

Diesen XML-Code nur noch in eine Snippet-Datei mit dem Namen propvm.snippet speichern. Fast fertig. Das Snippet muss jetzt nur noch in den Snippets-Ordner verschoben werden, in meinem Fall sieht dieser so aus:

C:\Users\Julian\Documents\Visual Studio 2013\Code Snippets\Visual C#\My Code Snippets

Quelle: Thomis C# Blog

Kommentar hinterlassen

Markdown wird unterstützt.