Extraits de code C#
Dans Visual Studio, vous pouvez utiliser des extraits de code pour ajouter du code couramment utilisé à vos fichiers de code C#. Les extraits de code peuvent accélérer, simplifier et fiabiliser l’écriture de code de programme.
Les extraits de code d’expansion sont ajoutés aux points d’insertion spécifiés. Les extraits de code surround-with sont ajoutés autour du code sélectionné et sont disponibles uniquement pour C# et C++. Pour obtenir des instructions sur l’insertion ou l’entourer de code avec des extraits de code, consultez extraits de code.
Informations de référence sur l’extrait de code
Les extraits de code fonctionnent de la même façon en C# et C++, mais l’ensemble d’extraits de code par défaut est différent. Les extraits de code C# suivants sont inclus dans Visual Studio par défaut :
Nom ou raccourci | Description | Emplacements d’insertion valides |
---|---|---|
#if | Crée une directive #if et une directive #endif . | N’importe où. |
#region | Crée une directive #region et une directive #endregion . | N’importe où. |
~ | Crée un finaliseur (destructeur) pour la classe conteneur. | Dans une classe. |
attribut | Crée une déclaration pour une classe qui dérive de Attribute. | Dans un espace de noms (notamment l’espace de noms global), une classe ou un struct. |
checked | Crée un bloc checked. | Dans une méthode, un indexeur, un accesseur de propriété ou un accesseur d’événement. |
class | Crée une déclaration de classe. | Dans un espace de noms (notamment l’espace de noms global), une classe ou un struct. |
ctor | Crée un constructeur pour la classe conteneur. | Dans une classe. |
cw | Crée un appel à WriteLine. | Dans une méthode, un indexeur, un accesseur de propriété ou un accesseur d’événement. |
do | Crée une boucle do while . | Dans une méthode, un indexeur, un accesseur de propriété ou un accesseur d’événement. |
else | Crée un bloc if-else . | Dans une méthode, un indexeur, un accesseur de propriété ou un accesseur d’événement. |
enum | Crée une déclaration enum. | Dans un espace de noms (notamment l’espace de noms global), une classe ou un struct. |
equals | Crée une déclaration de méthode qui substitue la méthode Equals définie dans la classe Object. | Dans une classe ou un struct. |
exception | Crée une déclaration pour une classe qui dérive d’une exception (Exception par défaut). | Dans un espace de noms (notamment l’espace de noms global), une classe ou un struct. |
pour | Crée une boucle for. | Dans une méthode, un indexeur, un accesseur de propriété ou un accesseur d’événement. |
foreach | Crée une boucle foreach. | Dans une méthode, un indexeur, un accesseur de propriété ou un accesseur d’événement. |
forr | Crée une boucle for qui décrémente la variable de boucle après chaque itération. | Dans une méthode, un indexeur, un accesseur de propriété ou un accesseur d’événement. |
if | Crée un bloc if. | Dans une méthode, un indexeur, un accesseur de propriété ou un accesseur d’événement. |
indexeur | Crée une déclaration d’indexeur. | Dans une classe ou un struct. |
interface | Crée une déclaration interface. | Dans un espace de noms (notamment l’espace de noms global), une classe ou un struct. |
invoke | Crée un bloc qui appelle un événement en toute sécurité. | Dans une méthode, un indexeur, un accesseur de propriété ou un accesseur d’événement. |
iterator | Crée un itérateur. | Dans une classe ou un struct. |
iterindex | Crée une named paire itérateur et indexeur à l’aide d’une classe imbriquée. |
Dans une classe ou un struct. |
lock | Crée un bloc lock. | Dans une méthode, un indexeur, un accesseur de propriété ou un accesseur d’événement. |
mbox | Crée un appel à System.Windows.Forms.MessageBox.Show. Vous devrez peut-être ajouter une référence à System.Windows.Forms.dll. | Dans une méthode, un indexeur, un accesseur de propriété ou un accesseur d’événement. |
espace de noms | Crée une déclaration namespace. | À l’intérieur d’un espace de noms, y compris l’espace de noms global. |
prop | Crée une déclaration de propriété implémentée automatiquement. | Dans une classe ou un struct. |
propfull | Crée une déclaration de propriété avec des accesseurs get et set . |
Dans une classe ou un struct. |
propg | Crée une propriété auto-implémentée en lecture seule avec un accesseur privéset . |
Dans une classe ou un struct. |
sim | Crée une déclaration de méthode statique int Main. | Dans une classe ou un struct. |
struct | Crée une déclaration struct. | Dans un espace de noms (notamment l’espace de noms global), une classe ou un struct. |
svm | Crée une déclaration de méthode main void statique. | Dans une classe ou un struct. |
switch | Crée un bloc switch. | Dans une méthode, un indexeur, un accesseur de propriété ou un accesseur d’événement. |
Essayer | Crée un bloc try-catch. | Dans une méthode, un indexeur, un accesseur de propriété ou un accesseur d’événement. |
tryf | Crée un bloc try-finally. | Dans une méthode, un indexeur, un accesseur de propriété ou un accesseur d’événement. |
unchecked | Crée un bloc unchecked. | Dans une méthode, un indexeur, un accesseur de propriété ou un accesseur d’événement. |
unsafe | Crée un bloc unsafe. | Dans une méthode, un indexeur, un accesseur de propriété ou un accesseur d’événement. |
using | Crée une directive using. | À l’intérieur d’un espace de noms, y compris l’espace de noms global. |
while | Crée une boucle while. | Dans une méthode, un indexeur, un accesseur de propriété ou un accesseur d’événement. |
Fonctions d’extrait de code C#
Les fonctions sont spécifiées dans l’élément Function de l’extrait de code. Le tableau suivant décrit les trois fonctions à utiliser avec l’élément Function
dans les extraits de code C#.
Fonction | Description |
---|---|
GenerateSwitchCases(EnumerationLiteral) |
Génère une instruction switch et un ensemble d’instructions case pour les membres de l’énumération spécifiée par le paramètre EnumerationLiteral . Le EnumerationLiteral paramètre doit être une référence à un littéral d’énumération ou à un type d’énumération. |
ClassName() |
Retourne le nom de la classe qui contient l’extrait de code inséré. |
SimpleTypeName(TypeName) |
Réduit le TypeName paramètre à sa forme la plus simple dans le contexte dans lequel l’extrait de code a été appelé. |
Exemple de GenerateSwitchCases
L’exemple suivant explique comment utiliser la fonction GenerateSwitchCases
. Lorsque vous insérez cet extrait de code et entrez une énumération dans le $switch_on$
littéral, le $cases$
littéral génère une case
instruction pour chaque valeur de l’énumération.
<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>
Exemple de ClassName
L’exemple suivant explique comment utiliser la fonction ClassName
. Lorsque vous insérez cet extrait de code, le $classname$
littéral est remplacé par le nom de la classe englobante à cet emplacement dans le fichier de code.
<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>
Exemple de SimpleTypeName
Cet exemple montre comment utiliser la fonction SimpleTypeName
. Lorsque vous insérez cet extrait de code dans un fichier de code, le $SystemConsole$
littéral est remplacé par la forme la Console plus simple du type dans le contexte dans lequel vous avez appelé l’extrait de code.
<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>