Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
In Visual Studio, you can use code snippets to add commonly used code to your C# code files. Code snippets can make writing program code quicker, easier, and more reliable.
Expansion code snippets are added at specified insertion points. Surround-with code snippets are added around selected code, and are available for C# and C++ only. For instructions on how to insert or surround code with code snippets, see Code snippets.
Code snippet reference
Code snippets work much the same way in C# and C++, but the set of default code snippets is different. The following C# code snippets are included in Visual Studio by default:
| Name or shortcut | Description | Valid insertion locations |
|---|---|---|
| #if | Creates an #if directive and an #endif directive. | Anywhere. |
| #region | Creates a #region directive and an #endregion directive. | Anywhere. |
| ~ | Creates a finalizer (destructor) for the containing class. | Inside a class. |
| attribute | Creates a declaration for a class that derives from Attribute. | Inside a namespace (including the global namespace), a class, or a struct. |
| checked | Creates a checked block. | Inside a method, an indexer, a property accessor, or an event accessor. |
| class | Creates a class declaration. | Inside a namespace (including the global namespace), a class, or a struct. |
| ctor | Creates a constructor for the containing class. | Inside a class. |
| cw | Creates a call to WriteLine. | Inside a method, an indexer, a property accessor, or an event accessor. |
| do | Creates a do while loop. | Inside a method, an indexer, a property accessor, or an event accessor. |
| else | Creates an if-else block. | Inside a method, an indexer, a property accessor, or an event accessor. |
| enum | Creates an enum declaration. | Inside a namespace (including the global namespace), a class, or a struct. |
| equals | Creates a method declaration that overrides the Equals method defined in the Object class. | Inside a class or a struct. |
| exception | Creates a declaration for a class that derives from an exception (Exception by default). | Inside a namespace (including the global namespace), a class, or a struct. |
| for | Creates a for loop. | Inside a method, an indexer, a property accessor, or an event accessor. |
| foreach | Creates a foreach loop. | Inside a method, an indexer, a property accessor, or an event accessor. |
| forr | Creates a for loop that decrements the loop variable after each iteration. | Inside a method, an indexer, a property accessor, or an event accessor. |
| if | Creates an if block. | Inside a method, an indexer, a property accessor, or an event accessor. |
| indexer | Creates an indexer declaration. | Inside a class or a struct. |
| interface | Creates an interface declaration. | Inside a namespace (including the global namespace), a class, or a struct. |
| invoke | Creates a block that safely invokes an event. | Inside a method, an indexer, a property accessor, or an event accessor. |
| iterator | Creates an iterator. | Inside a class or a struct. |
| iterindex | Creates a named iterator and indexer pair by using a nested class. |
Inside a class or a struct. |
| lock | Creates a lock block. | Inside a method, an indexer, a property accessor, or an event accessor. |
| mbox | Creates a call to System.Windows.Forms.MessageBox.Show. You might have to add a reference to System.Windows.Forms.dll. | Inside a method, an indexer, a property accessor, or an event accessor. |
| namespace | Creates a namespace declaration. | Inside a namespace, including the global namespace. |
| prop | Creates an autoimplemented property declaration. | Inside a class or a struct. |
| propfull | Creates a property declaration with get and set accessors. |
Inside a class or a struct. |
| propg | Creates a read-only autoimplemented property with a private set accessor. |
Inside a class or a struct. |
| sim | Creates a static int Main method declaration. | Inside a class or a struct. |
| struct | Creates a struct declaration. | Inside a namespace (including the global namespace), a class, or a struct. |
| svm | Creates a static void Main method declaration. | Inside a class or a struct. |
| switch | Creates a switch block. | Inside a method, an indexer, a property accessor, or an event accessor. |
| try | Creates a try-catch block. | Inside a method, an indexer, a property accessor, or an event accessor. |
| tryf | Creates a try-finally block. | Inside a method, an indexer, a property accessor, or an event accessor. |
| unchecked | Creates an unchecked block. | Inside a method, an indexer, a property accessor, or an event accessor. |
| unsafe | Creates an unsafe block. | Inside a method, an indexer, a property accessor, or an event accessor. |
| using | Creates a using directive. | Inside a namespace, including the global namespace. |
| while | Creates a while loop. | Inside a method, an indexer, a property accessor, or an event accessor. |
C# code snippet functions
Functions are specified in the Function element of the code snippet. The following table describes the three functions available to use with the Function element in C# code snippets.
| Function | Description |
|---|---|
GenerateSwitchCases(EnumerationLiteral) |
Generates a switch statement and a set of case statements for the members of the enumeration specified by the EnumerationLiteral parameter. The EnumerationLiteral parameter must be a reference either to an enumeration literal or an enumeration type. |
ClassName() |
Returns the name of the class that contains the inserted snippet. |
SimpleTypeName(TypeName) |
Reduces the TypeName parameter to its simplest form in the context in which the snippet was invoked. |
GenerateSwitchCases example
The following example shows how to use the GenerateSwitchCases function. When you insert this snippet and enter an enumeration into the $switch_on$ literal, the $cases$ literal generates a case statement for every value in the 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>
ClassName example
The following example shows how to use the ClassName function. When you insert this snippet, the $classname$ literal is replaced with the name of the enclosing class at that location in the code file.
<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>
SimpleTypeName example
This example shows how to use the SimpleTypeName function. When you insert this snippet into a code file, the $SystemConsole$ literal is replaced with the simplest form of the Console type in the context in which you invoked the snippet.
<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>