Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In Visual Studio können Sie Codeausschnitte verwenden, um häufig verwendeten Code zu Ihren C#-Codedateien hinzuzufügen. Durch Codeausschnitte kann das Erstellen von Programmcode schneller, einfacher und zuverlässiger werden.
Erweiterungscodeausschnitte werden an angegebenen Einfügepunkten hinzugefügt. Surround-With-Codeausschnitte werden um den ausgewählten Code herum hinzugefügt und sind nur für C# und C++ verfügbar. Anweisungen zum Einfügen oder Umgeben von Codeausschnitten finden Sie unter Codeausschnitte.
Codeausschnittreferenz
Codeausschnitte funktionieren in C# und C++ ähnlich, aber die Standardcodeausschnitte unterscheiden sich. Die folgenden C#-Codeausschnitte sind standardmäßig in Visual Studio enthalten:
| Name oder Verknüpfung | Beschreibung | Gültige Einfügepositionen |
|---|---|---|
| #if | Erstellt eine #if-Direktive und eine #endif-Direktive . | Beliebig. |
| #region | Erstellt eine #region-Direktive und eine #endregion-Direktive . | Beliebig. |
| ~ | Erstellt einen Finalizer (Destruktor) für die enthaltende Klasse. | Innerhalb einer Klasse. |
| Attribut | Erstellt eine Deklaration für eine Attribute abgeleitete Klasse. | In einem Namespace (einschließlich des globalen Namespaces), einer Klasse oder einer Struktur. |
| checked | Erstellt einen checked-Block. | In einer Methode, einem Indexer, einem Eigenschaftenaccessor oder einem Ereignisaccessor. |
| class | Erstellt eine Klassendeklaration. | In einem Namespace (einschließlich des globalen Namespaces), einer Klasse oder einer Struktur. |
| ctor | Erstellt einen Konstruktor für die enthaltende Klasse. | Innerhalb einer Klasse. |
| cw | Erstellt einen Aufruf an WriteLine. | In einer Methode, einem Indexer, einem Eigenschaftenaccessor oder einem Ereignisaccessor. |
| do | Erstellt eine Do-While-Schleife. | In einer Methode, einem Indexer, einem Eigenschaftenaccessor oder einem Ereignisaccessor. |
| else | Erstellt einen If-Else-Block . | In einer Methode, einem Indexer, einem Eigenschaftenaccessor oder einem Ereignisaccessor. |
| enum | Erstellt eine enum-Deklaration. | In einem Namespace (einschließlich des globalen Namespaces), einer Klasse oder einer Struktur. |
| equals | Erstellt eine Methodendeklaration, die die in der Object-Klasse definierte Equals-Methode außer Kraft setzt. | Innerhalb einer Klasse oder Struktur. |
| exception | Erstellt eine Deklaration für eine Klasse, die von einer Ausnahme abgeleitet wird (standardmäßig Exception). | In einem Namespace (einschließlich des globalen Namespaces), einer Klasse oder einer Struktur. |
| für | Erstellt eine for-Schleife. | In einer Methode, einem Indexer, einem Eigenschaftenaccessor oder einem Ereignisaccessor. |
| foreach | Erstellt eine foreach-Schleife. | In einer Methode, einem Indexer, einem Eigenschaftenaccessor oder einem Ereignisaccessor. |
| forr | Erstellt eine for-Schleife, deren Schleifenvariable nach jeder Iteration verringert wird. | In einer Methode, einem Indexer, einem Eigenschaftenaccessor oder einem Ereignisaccessor. |
| if | Erstellt einen if-Block. | In einer Methode, einem Indexer, einem Eigenschaftenaccessor oder einem Ereignisaccessor. |
| Indexer | Erstellt eine Indexerdeklaration. | Innerhalb einer Klasse oder Struktur. |
| interface | Erstellt eine interface-Deklaration. | In einem Namespace (einschließlich des globalen Namespaces), einer Klasse oder einer Struktur. |
| invoke | Erstellt einen Block, durch den ein Ereignis sicher aufgerufen wird. | In einer Methode, einem Indexer, einem Eigenschaftenaccessor oder einem Ereignisaccessor. |
| Iterator | Erstellt einen Iterator. | Innerhalb einer Klasse oder Struktur. |
| iterindex | Erstellt ein named Iterator- und Indexerpaar mithilfe einer geschachtelten Klasse. |
Innerhalb einer Klasse oder Struktur. |
| Sperre | Erstellt einen lock-Block. | In einer Methode, einem Indexer, einem Eigenschaftenaccessor oder einem Ereignisaccessor. |
| mbox | Erstellt einen Aufruf an System.Windows.Forms.MessageBox.Show. Möglicherweise müssen Sie einen Verweis auf System.Windows.Forms.dll hinzufügen. | In einer Methode, einem Indexer, einem Eigenschaftenaccessor oder einem Ereignisaccessor. |
| namespace | Erstellt eine namespace-Deklaration. | Innerhalb eines Namespaces, einschließlich des globalen Namespaces. |
| prop | Erstellt eine autoimplementierte Eigenschaftsdeklaration . | Innerhalb einer Klasse oder Struktur. |
| propfull | Erstellt eine Eigenschaftendeklaration mit get-Accessor und set-Accessor. |
Innerhalb einer Klasse oder Struktur. |
| propg | Erstellt eine schreibgeschützte autoimplementierte Eigenschaft mit einem privaten set Accessor. |
Innerhalb einer Klasse oder Struktur. |
| sim | Erstellt eine Deklaration der Main-Methode mit static int. | Innerhalb einer Klasse oder Struktur. |
| struct | Erstellt eine struct-Deklaration. | In einem Namespace (einschließlich des globalen Namespaces), einer Klasse oder einer Struktur. |
| svm | Erstellt eine Deklaration der Main-Methode mit static void. | Innerhalb einer Klasse oder Struktur. |
| switch | Erstellt einen switch-Block. | In einer Methode, einem Indexer, einem Eigenschaftenaccessor oder einem Ereignisaccessor. |
| Versuch | Erstellt einen try-catch-Block. | In einer Methode, einem Indexer, einem Eigenschaftenaccessor oder einem Ereignisaccessor. |
| tryf | Erstellt einen try-finally-Block. | In einer Methode, einem Indexer, einem Eigenschaftenaccessor oder einem Ereignisaccessor. |
| unchecked | Erstellt einen unchecked-Block. | In einer Methode, einem Indexer, einem Eigenschaftenaccessor oder einem Ereignisaccessor. |
| unsafe | Erstellt einen unsafe-Block. | In einer Methode, einem Indexer, einem Eigenschaftenaccessor oder einem Ereignisaccessor. |
| using | Erstellt eine using-Direktive. | Innerhalb eines Namespaces, einschließlich des globalen Namespaces. |
| while | Erstellt eine while-Schleife. | In einer Methode, einem Indexer, einem Eigenschaftenaccessor oder einem Ereignisaccessor. |
C#-Codeausschnittfunktionen
Funktionen werden im Element Function (Funktion) des Codeausschnitts angegeben. In der folgenden Tabelle sind die drei Funktionen beschrieben, die mit dem Function Element in C#-Codeausschnitten verwendet werden können.
| Funktion | Beschreibung |
|---|---|
GenerateSwitchCases(EnumerationLiteral) |
Es werden eine switch-Anweisung sowie mehrere case-Anweisungen für die vom EnumerationLiteral-Parameter angegebenen Member der Enumeration generiert. Der EnumerationLiteral Parameter muss ein Verweis auf ein Enumerationsliteral oder einen Enumerationstyp sein. |
ClassName() |
Gibt den Namen der Klasse zurück, die den eingefügten Ausschnitt enthält. |
SimpleTypeName(TypeName) |
Reduziert den TypeName Parameter auf seine einfachste Form im Kontext, in dem der Codeausschnitt aufgerufen wurde. |
Beispiel für GenerateSwitchCases
Das folgende Beispiel zeigt die Verwendung der Funktion GenerateSwitchCases. Wenn Sie diesen Codeausschnitt einfügen und eine Enumeration in das $switch_on$ Literal eingeben, generiert das $cases$ Literal eine case Anweisung für jeden Wert in der Enumeration.
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>switch</Title>
<Shortcut>switch</Shortcut>
<Description>Code snippet for switch statement</Description>
<Author>Microsoft Corporation</Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>expression</ID>
<ToolTip>Expression to switch on</ToolTip>
<Default>switch_on</Default>
</Literal>
<Literal Editable="false">
<ID>cases</ID>
<Function>GenerateSwitchCases($expression$)</Function>
<Default>default:</Default>
</Literal>
</Declarations>
<Code Language="csharp">
<![CDATA[
switch ($expression$)
{
$cases$
}
]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
Beispiel für ClassName
Das folgende Beispiel zeigt die Verwendung der Funktion ClassName. Wenn Sie diesen Codeausschnitt einfügen, wird das $classname$ Literal durch den Namen der eingeschlossenen Klasse an dieser Stelle in der Codedatei ersetzt.
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>Common constructor pattern</Title>
<Shortcut>ctor</Shortcut>
<Description>Code Snippet for a constructor</Description>
<Author>Microsoft Corporation</Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>type</ID>
<Default>int</Default>
</Literal>
<Literal>
<ID>name</ID>
<Default>field</Default>
</Literal>
<Literal default="true" Editable="false">
<ID>classname</ID>
<ToolTip>Class name</ToolTip>
<Function>ClassName()</Function>
<Default>ClassNamePlaceholder</Default>
</Literal>
</Declarations>
<Code Language="csharp" Format="CData">
<![CDATA[
public $classname$ ($type$ $name$)
{
this._$name$ = $name$;
}
private $type$ _$name$;
]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
Beispiel für SimpleTypeName
In diesem Beispiel wird die Verwendung der SimpleTypeName-Funktion veranschaulicht. Wenn Sie diesen Codeausschnitt in eine Codedatei einfügen, wird das $SystemConsole$ Literal durch die einfachste Form des Console Typs im Kontext ersetzt, in dem Sie den Codeausschnitt aufgerufen haben.
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>Console_WriteLine</Title>
<Shortcut>cw</Shortcut>
<Description>Code snippet for Console.WriteLine</Description>
<Author>Microsoft Corporation</Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Declarations>
<Literal Editable="false">
<ID>SystemConsole</ID>
<Function>SimpleTypeName(global::System.Console)</Function>
</Literal>
</Declarations>
<Code Language="csharp">
<![CDATA[
$SystemConsole$.WriteLine();
]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>