Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
In Visual Studio è possibile usare frammenti di codice per aggiungere codice comunemente usato ai file di codice C#. I frammenti di codice possono rendere la scrittura del codice dei programmi più veloce, più semplice e più affidabile.
I frammenti di codice di espansione vengono aggiunti in corrispondenza dei punti di inserimento specificati. I frammenti di codice racchiusi vengono aggiunti intorno al codice selezionato e sono disponibili solo per C# e C++. Per istruzioni su come inserire o racchiudere il codice con frammenti di codice, vedere Frammenti di codice.
Riferimento al frammento di codice
I frammenti di codice funzionano allo stesso modo in C# e C++, ma il set di frammenti di codice predefiniti è diverso. I frammenti di codice C# seguenti sono inclusi in Visual Studio per impostazione predefinita:
| Nome o collegamento | Descrizione | Posizioni di inserimento valide |
|---|---|---|
| #if | Crea una direttiva #if e una direttiva #endif . | Ovunque. |
| #region | Crea una direttiva #region e una direttiva #endregion . | Ovunque. |
| ~ | Crea un finalizzatore (distruttore) per la classe contenitore. | All'interno di una classe. |
| Attributo | Crea una dichiarazione per una classe che deriva da Attribute. | All'interno di uno spazio dei nomi (incluso lo spazio dei nomi globale), una classe o uno struct. |
| checked | Crea un blocco checked. | All'interno di un metodo, un indicizzatore, una funzione di accesso proprietà o una funzione di accesso eventi. |
| class | Crea una dichiarazione di classe. | All'interno di uno spazio dei nomi (incluso lo spazio dei nomi globale), una classe o uno struct. |
| ctor | Crea un costruttore per la classe contenitore. | All'interno di una classe. |
| cw | Crea una chiamata a WriteLine. | All'interno di un metodo, un indicizzatore, una funzione di accesso proprietà o una funzione di accesso eventi. |
| do | Crea un ciclo do while . | All'interno di un metodo, un indicizzatore, una funzione di accesso proprietà o una funzione di accesso eventi. |
| else | Crea un blocco if-else . | All'interno di un metodo, un indicizzatore, una funzione di accesso proprietà o una funzione di accesso eventi. |
| enum | Crea una dichiarazione enum. | All'interno di uno spazio dei nomi (incluso lo spazio dei nomi globale), una classe o uno struct. |
| equals | Crea una dichiarazione di metodo che esegue l'override del metodo Equals definito nella classe Object. | All'interno di una classe o uno struct. |
| exception | Crea una dichiarazione per una classe che deriva da un'eccezione (Exception per impostazione predefinita). | All'interno di uno spazio dei nomi (incluso lo spazio dei nomi globale), una classe o uno struct. |
| per | Crea un ciclo for. | All'interno di un metodo, un indicizzatore, una funzione di accesso proprietà o una funzione di accesso eventi. |
| foreach | Crea un ciclo foreach. | All'interno di un metodo, un indicizzatore, una funzione di accesso proprietà o una funzione di accesso eventi. |
| forr | Crea un ciclo for che decrementa la variabile di ciclo dopo ogni iterazione. | All'interno di un metodo, un indicizzatore, una funzione di accesso proprietà o una funzione di accesso eventi. |
| if | Crea un blocco if. | All'interno di un metodo, un indicizzatore, una funzione di accesso proprietà o una funzione di accesso eventi. |
| Indicizzatore | Crea una dichiarazione di indicizzatore. | All'interno di una classe o uno struct. |
| interface | Crea una dichiarazione interface. | All'interno di uno spazio dei nomi (incluso lo spazio dei nomi globale), una classe o uno struct. |
| invoke | Crea un blocco che richiama in modo sicuro un evento. | All'interno di un metodo, un indicizzatore, una funzione di accesso proprietà o una funzione di accesso eventi. |
| iteratore | Crea un iteratore. | All'interno di una classe o uno struct. |
| iterindex | Crea un iteratore e una named coppia di indicizzatori usando una classe annidata. |
All'interno di una classe o uno struct. |
| lock | Crea un blocco lock. | All'interno di un metodo, un indicizzatore, una funzione di accesso proprietà o una funzione di accesso eventi. |
| mbox | Crea una chiamata a System.Windows.Forms.MessageBox.Show. Potrebbe essere necessario aggiungere un riferimento a System.Windows.Forms.dll. | All'interno di un metodo, un indicizzatore, una funzione di accesso proprietà o una funzione di accesso eventi. |
| namespace | Crea una dichiarazione namespace. | All'interno di uno spazio dei nomi, incluso lo spazio dei nomi globale. |
| prop | Crea una dichiarazione di proprietà autoimplementata. | All'interno di una classe o uno struct. |
| propfull | Crea una dichiarazione di proprietà con le funzioni di accesso get e set. |
All'interno di una classe o uno struct. |
| propg | Crea una proprietà di sola lettura implementata automaticamente con una funzione di accesso privata set . |
All'interno di una classe o uno struct. |
| sim | Crea una dichiarazione di metodo int Main statica. | All'interno di una classe o uno struct. |
| struct | Crea una dichiarazione struct. | All'interno di uno spazio dei nomi (incluso lo spazio dei nomi globale), una classe o uno struct. |
| svm | Crea una dichiarazione di metodo Main void statica. | All'interno di una classe o uno struct. |
| switch | Crea un blocco switch. | All'interno di un metodo, un indicizzatore, una funzione di accesso proprietà o una funzione di accesso eventi. |
| try | Crea un blocco try-catch. | All'interno di un metodo, un indicizzatore, una funzione di accesso proprietà o una funzione di accesso eventi. |
| tryf | Crea un blocco try-finally. | All'interno di un metodo, un indicizzatore, una funzione di accesso proprietà o una funzione di accesso eventi. |
| unchecked | Crea un blocco unchecked. | All'interno di un metodo, un indicizzatore, una funzione di accesso proprietà o una funzione di accesso eventi. |
| unsafe | Crea un blocco unsafe. | All'interno di un metodo, un indicizzatore, una funzione di accesso proprietà o una funzione di accesso eventi. |
| using | Crea una direttiva using. | All'interno di uno spazio dei nomi, incluso lo spazio dei nomi globale. |
| while | Crea un ciclo while. | All'interno di un metodo, un indicizzatore, una funzione di accesso proprietà o una funzione di accesso eventi. |
Funzioni del frammento di codice C#
Le funzioni sono specificate nell'elemento Function del frammento di codice. La tabella seguente descrive le tre funzioni disponibili per l'uso con l'elemento Function nei frammenti di codice C#.
| Funzione | Descrizione |
|---|---|
GenerateSwitchCases(EnumerationLiteral) |
Genera un'istruzione switch e un set di istruzioni case per i membri dell'enumerazione specificata dal parametro EnumerationLiteral. Il EnumerationLiteral parametro deve essere un riferimento a un valore letterale di enumerazione o a un tipo di enumerazione. |
ClassName() |
Restituisce il nome della classe che contiene il frammento inserito. |
SimpleTypeName(TypeName) |
Riduce il TypeName parametro alla forma più semplice nel contesto in cui è stato richiamato il frammento. |
Esempio GenerateSwitchCases
L'esempio seguente illustra come usare la funzione GenerateSwitchCases. Quando si inserisce questo frammento di codice e si immette un'enumerazione nel $switch_on$ valore letterale, il $cases$ valore letterale genera un'istruzione case per ogni valore nell'enumerazione.
<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>
Esempio ClassName
L'esempio seguente illustra come usare la funzione ClassName. Quando si inserisce questo frammento di codice, il $classname$ valore letterale viene sostituito con il nome della classe contenitore nel file di codice.
<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>
Esempio SimpleTypeName
In questo esempio viene illustrato come usare la funzione SimpleTypeName. Quando si inserisce questo frammento di codice in un file di codice, il $SystemConsole$ valore letterale viene sostituito con la forma più semplice del Console tipo nel contesto in cui è stato richiamato il frammento.
<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>