Snippets de código C#
No Visual Studio, você pode usar trechos de código para adicionar código comumente usado aos seus arquivos de código C#. Os snippets de código podem fazer com que escrever código de programa seja mais rápido, mais fácil e mais confiável.
Trechos de código de expansão são adicionados em pontos de inserção especificados. Trechos de código são adicionados em torno do código selecionado e estão disponíveis apenas para C# e C++. Para obter instruções sobre como inserir ou cercar código com trechos de código, consulte Trechos de código.
Referência de trecho de código
Trechos de código funcionam da mesma maneira em C# e C++, mas o conjunto de trechos de código padrão é diferente. Os seguintes trechos de código C# estão incluídos no Visual Studio por padrão:
Nome ou atalho | Descrição | Locais de inserção válidos |
---|---|---|
#if | Cria uma directiva #if e uma directiva #endif . | Em qualquer lugar. |
#region | Cria uma directiva #region e uma directiva #endregion . | Em qualquer lugar. |
~ | Cria um finalizador (destruidor) para a classe que o contém. | Dentro de uma classe. |
Atributo | Cria uma declaração para uma classe que deriva de Attribute. | Dentro de um namespace (incluindo o namespace global), uma classe ou uma estrutura. |
verificado | Cria um bloco checked. | Dentro de um método, um indexador, um acessador de propriedade ou um acessador de evento. |
classe | Cria uma declaração de classe. | Dentro de um namespace (incluindo o namespace global), uma classe ou uma estrutura. |
ctor | Cria um construtor para a classe que o contém. | Dentro de uma classe. |
cw | Cria uma chamada para WriteLine. | Dentro de um método, um indexador, um acessador de propriedade ou um acessador de evento. |
do | Cria um loop dowhile . | Dentro de um método, um indexador, um acessador de propriedade ou um acessador de evento. |
else | Cria um bloco if-else . | Dentro de um método, um indexador, um acessador de propriedade ou um acessador de evento. |
enum | Cria uma declaração enum. | Dentro de um namespace (incluindo o namespace global), uma classe ou uma estrutura. |
equals | Cria uma declaração de método que substitui o método Equals definido na classe Object. | Dentro de uma classe ou um struct. |
exception | Cria uma declaração para uma classe que deriva de uma exceção (Exception por padrão). | Dentro de um namespace (incluindo o namespace global), uma classe ou uma estrutura. |
para | Cria um loop for. | Dentro de um método, um indexador, um acessador de propriedade ou um acessador de evento. |
foreach | Cria um loop foreach. | Dentro de um método, um indexador, um acessador de propriedade ou um acessador de evento. |
forr | Cria um loop for que decrementa a variável de loop depois de cada iteração. | Dentro de um método, um indexador, um acessador de propriedade ou um acessador de evento. |
if | Cria um bloco if. | Dentro de um método, um indexador, um acessador de propriedade ou um acessador de evento. |
indexador | Cria uma declaração do indexador. | Dentro de uma classe ou um struct. |
interface | Cria uma declaração interface. | Dentro de um namespace (incluindo o namespace global), uma classe ou uma estrutura. |
invoke | Cria um bloco que invoca um evento com segurança. | Dentro de um método, um indexador, um acessador de propriedade ou um acessador de evento. |
iterator | Cria um iterador. | Dentro de uma classe ou um struct. |
iterindex | Cria um named par iterador e indexador usando uma classe aninhada. |
Dentro de uma classe ou um struct. |
lock | Cria um bloco lock. | Dentro de um método, um indexador, um acessador de propriedade ou um acessador de evento. |
mbox | Cria uma chamada para System.Windows.Forms.MessageBox.Show. Talvez seja necessário adicionar uma referência a System.Windows.Forms.dll. | Dentro de um método, um indexador, um acessador de propriedade ou um acessador de evento. |
namespace | Cria uma declaração de namespace. | Dentro de um namespace, incluindo o namespace global. |
prop | Cria uma declaração de propriedade implementada automaticamente. | Dentro de uma classe ou um struct. |
propfull | Cria uma declaração de propriedade com os acessadores get e set . |
Dentro de uma classe ou um struct. |
propg | Cria uma propriedade autoimplementada somente leitura com um acessador privadoset . |
Dentro de uma classe ou um struct. |
sim | Cria uma declaração de método principal staticint. | Dentro de uma classe ou um struct. |
struct | Cria uma declaração struct. | Dentro de um namespace (incluindo o namespace global), uma classe ou uma estrutura. |
svm | Cria uma declaração de método principal staticvoid. | Dentro de uma classe ou um struct. |
switch | Cria um bloco switch. | Dentro de um método, um indexador, um acessador de propriedade ou um acessador de evento. |
experimentar | Cria um bloco try-catch. | Dentro de um método, um indexador, um acessador de propriedade ou um acessador de evento. |
tryf | Cria um bloco try-finally. | Dentro de um método, um indexador, um acessador de propriedade ou um acessador de evento. |
unchecked | Cria um bloco unchecked. | Dentro de um método, um indexador, um acessador de propriedade ou um acessador de evento. |
unsafe | Cria um bloco unsafe. | Dentro de um método, um indexador, um acessador de propriedade ou um acessador de evento. |
using | Cria uma diretiva using. | Dentro de um namespace, incluindo o namespace global. |
while | Cria um loop while. | Dentro de um método, um indexador, um acessador de propriedade ou um acessador de evento. |
Funções de trecho de código C#
As funções são especificadas no elemento Function do snippet de código. A tabela a seguir descreve as três funções disponíveis para uso com o elemento em trechos Function
de código C#.
Função | Descrição |
---|---|
GenerateSwitchCases(EnumerationLiteral) |
Gera uma instrução de opção e um conjunto de instruções de maiúsculas e minúsculas para os membros da enumeração especificada pelo parâmetro EnumerationLiteral . O EnumerationLiteral parâmetro deve ser uma referência a um literal de enumeração ou a um tipo de enumeração. |
ClassName() |
Retorna o nome da classe que contém o snippet inserido. |
SimpleTypeName(TypeName) |
Reduz o TypeName parâmetro à sua forma mais simples no contexto em que o trecho foi invocado. |
Exemplo de GenerateSwitchCases
O exemplo a seguir mostra como usar a função GenerateSwitchCases
. Quando você insere esse trecho e insere uma enumeração no $switch_on$
literal, o $cases$
literal gera uma case
instrução para cada valor na enumeração.
<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>
Exemplo de ClassName
O exemplo a seguir mostra como usar a função ClassName
. Quando você insere esse trecho, o $classname$
literal é substituído pelo nome da classe de inclusão nesse local no arquivo de código.
<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>
Exemplo de SimpleTypeName
Este exemplo mostra como usar a função SimpleTypeName
. Quando você insere esse trecho em um arquivo de código, o $SystemConsole$
literal é substituído pela forma mais simples do Console tipo no contexto em que você invocou o trecho.
<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>
Conteúdo relacionado
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de