Snippets de código e como usá-los

Snippets de código são pequenos blocos de código reutilizável que você pode adicionar a um arquivo de código. Em geral, os snippets contêm blocos de código usados com frequência, como blocos de Try...Finally ou If...Else. Você também pode usar os snippets de código para adicionar classes ou métodos inteiros.

Um snippet de código tem um título usado para selecionar o snippet e pode ter um nome de atalho que você poderá digitar para inserir o snippet. Os snippets podem até mesmo conter parâmetros de substituição, que atuam como espaços reservados. Os snippets estão disponíveis para várias linguagens, inclusive C#, C++ e Visual Basic.

Trechos de expansão e Trechos surround-with

É possível adicionar dois tipos de snippets de código ao seu código:

  • Um snippet de expansão é adicionado em um ponto de inserção especificado.
  • Um snippet circundante é adicionado ao redor do código selecionado e está disponível apenas para C# e C++.

Localizar snippets disponíveis

Para exibir os snippets disponíveis para uma linguagem, selecione Ferramentas>Gerenciador de snippets de código na barra de menus ou pressione Ctrl+K, B e selecione a linguagem desejada no menu suspenso.

Captura de tela da caixa de diálogo Gerenciador de Referências de Código.

Para criar e importar seu próprio snippet, de modo que ele apareça na lista de snippets, consulte Passo a passo: criar um snippet de código no Visual Studio.

Adicionar um snippet a um arquivo de código

Para adicionar um snippet a um arquivo de código:

  1. No editor de código, posicione o cursor ou selecione o código C# ou C++ onde deseja adicionar o snippet.

  2. Execute uma das seguintes ações:

    • Na barra de menus do Visual Studio, escolha Editar>IntelliSenseInserir snippet> ou Editar>IntelliSense>Circundar.
    • Clique com o botão direito do mouse e escolha Snippet>Inserir snippet ou Snippet>Circundar com no menu de contexto.
    • No teclado, pressione Ctrl+K, X para um snippet de expansão ou Ctrl+K, S para um snippet circundante.
  3. Clique duas vezes no snippet desejado na lista suspensa ou digite o atalho do snippet e pressione Tab ou Enter.

Adicionar um snippet de expansão

Por exemplo, o snippet de expansão tryf em C# adiciona o seguinte bloco Try...Finally:

try
{

}
finally
{

}

Para adicionar esse snippet de expansão:

  1. No editor de código, posicione o cursor onde você deseja adicionar o snippet.
  2. Clique com o botão direito do mouse e selecione Inserir snippet no menu de contexto do botão direito do mouse ou use a barra de menus ou os comandos do teclado.
  3. Abra a pasta Visual C# e clique duas vezes em tryf na lista suspensa ou selecione tryf e pressione Tab ou Enter.

Dica

Também é possível posicionar o cursor no ponto de inserção, digitar tryf e pressionar Tab duas vezes.

Adicionar um snippet circundante

No exemplo a seguir de um snippet em C++, é possível usar o atalho if como um snippet de inserção ou um snippet circundante. Se você selecionar a linha de código return FALSE; e, em seguida, escolher Circundar com>if, o snippet de código será expandido ao redor da linha.

if (true)
{
    return FALSE;
}

Parâmetros de substituição de snippet

Snippets podem conter parâmetros de substituição, que são espaços reservados que você deve substituir de acordo com o código que está criando. No exemplo anterior, true é um parâmetro de substituição, que você substitui pela condição adequada. A substituição é repetida para cada ocorrência do mesmo parâmetro de substituição no snippet.

Por exemplo, o Visual Basic tem um snippet de código que define uma propriedade. Para inserir o snippet:

  1. No menu de contexto do botão direito do mouse em um arquivo de código do Visual Basic, selecione Snippet>Inserir Snippet.
  2. Selecione Padrões de Código>Propriedades, Procedimentos, Eventos>Definir uma Propriedade.

Captura de tela do menu de snippet de código para Definir uma Propriedade.

O código a seguir é inserido:

Private newPropertyValue As String
Public Property NewProperty() As String
    Get
        Return newPropertyValue
    End Get
    Set(ByVal value As String)
        newPropertyValue = value
    End Set
End Property

Se você alterar newPropertyValue para m_property, cada ocorrência de newPropertyValue será alterada. Se você alterar String para Int na declaração de propriedade, o valor no método Set também mudará para Int.

Melhores práticas para usar snippets de código

O código em um snippet de código mostra somente a maneira mais simples de fazer algo. Para a maioria dos aplicativos, o código deve ser modificado para se adaptar ao aplicativo.

Tratamento de exceções

Normalmente, os blocos Try...Catch de snippet de código capturam e relançam todas as exceções, mas talvez essa não seja a opção adequada para seu projeto. Para cada exceção, existem várias maneiras de responder. Para obter exemplos, confira Como processar uma exceção usando try/catch (C#) e Instrução Try...Catch...Finally (Visual Basic).

Locais de arquivos

Ao adaptar locais de arquivo ao seu aplicativo, certifique-se de considerar os seguintes fatores.

  • Encontre um local acessível. Talvez os usuários não tenham acesso à pasta Arquivos de Programas do computador, portanto, talvez o armazenamento de arquivos do usuário com os arquivos do aplicativo não funcione.

  • Encontre um local seguro. Não é seguro armazenar arquivos na pasta raiz, p. ex., C:\. Para dados de aplicativo, é melhor usar a pasta Dados do aplicativo. Para dados individuais do usuário, o aplicativo pode criar um arquivo na pasta Documentos de cada usuário.

  • Use um nome de arquivo válido. Você pode usar os controles OpenFileDialog e SaveFileDialog para reduzir a probabilidade de nomes de arquivo inválidos.

  • Lembre-se de que um arquivo selecionado pelo usuário pode ser excluído antes que seu código possa manipular o arquivo. Além disso, talvez um usuário não tenha permissão para gravar no arquivo.

Segurança

A segurança de um snippet dependerá de onde ele for usado no código-fonte e de como você o modificar quando ele estiver no código. A lista a seguir contém algumas das áreas que devem ser consideradas:

  • Acesso ao arquivo e ao banco de dados
  • Segurança de acesso do código
  • Protegendo recursos como logs de eventos e registro
  • Armazenar segredos
  • Verificando as entradas
  • Passando dados para tecnologias de script

Para mais informações, consulte Proteger aplicativos.

Snippets de código baixados

Os snippets de código instalados pelo Visual Studio não são, individualmente, um risco à segurança. No entanto, eles podem criar riscos de segurança no aplicativo. Snippets baixados na Internet devem ser tratados com extrema cautela, assim como qualquer outro conteúdo baixado. Baixe snippets somente em sites confiáveis e use um software antivírus atualizado.

Abra todos os arquivos de snippet baixados no Bloco de notas ou no editor de XML do Visual Studio e examine-os cuidadosamente antes de instalá-los. Cuidado com os seguintes problemas:

  • Snippet de código que possa danificar o sistema se for executado. Leia atentamente o código-fonte antes de executá-lo.

  • Blocos de HelpURL em arquivos de snippet contendo URLs que executem arquivos de script mal-intencionados ou exibam sites ofensivos.

  • Snippets com referências adicionadas silenciosamente ao projeto e podem ser carregadas de qualquer lugar do sistema. Você pode baixar essas referências do mesmo local no qual baixa um snippet. Em seguida, o snippet pode chamar um método na referência que execute um código mal-intencionado. Para detectar essas referências, revise os blocos Imports e References do arquivo de snippet.