Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse 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>