Время прочтения: 4 мин.

Сниппеты— это шаблоны кода, которые позволяют нам вместо полностью ручного ввода команд, использовать короткие сочетания, для того, чтобы сразу получить достаточный объем кода. Создаются они обычно для того, чтобы ускорить время разработки и тратить время на решение интересных задач вместо того, чтобы набирать тот же старый скучный код. например:

При нажатии два раза на «Tab» за нас машина заполнила полностью всю команду.

if (true)
{

}

Сниппеты могут:

  1. вставлять «кусок» команды;
  2. окружить код, вокруг которого он будет использован.

Обычно используют клавиатурные сочетания, но можно использовать и без него:

if (true)
{
Console.WriteLine(" ");
}

Мы «завернули» команду Console.WriteLine в If.

Так же сниппеты позволяют использовать параметры, как в данном случае с False:

if (false)
{
Console.WriteLine(" ");
}

Еще, при помощи сниппетов мы можем вставлять комментарии в начале метода.

using System; 
namespace SnippetExample 
{ 
       class Program 
       { 
             /// <summary> 
             /// Пример комментария 
             /// </summary> 
             /// <param name="args">входные аргументы</param> 
             static void Main(string[] args) 
             { 
                    Console.WriteLine("Hello Word!"); 
                    if (false) 
                    { 
                          Console.WriteLine(""); 
                    } 
                    for (int a = 0; a < length; a++) 
                    { 
 
                    } 
             } 
       } 
} 

Теперь метод помечен надписью, которую мы внесли в комментарии, как и в аргумент.

Где они находятся?

В Tools->Code Snippets Manager…->

Обратите внимание, что сниппеты есть не только С#, но и в других языках программирования.

В папке Visual C# находятся сниппеты, которые есть по умолчанию.

Можно выбрать сниппет, посмотреть его описание, клавиатурное сочетание. Чтобы посмотреть код шаблона, нужно найти папку где они находятся. Копируем адрес из окна «Location» и вставляем в проводник, перетаскиваем сниппет (например, «If») в окно программы. Перед нами код шаблона.

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
  <CodeSnippet Format="1.0.0">
     <Header>
        <Title>#if</Title>
        <Shortcut>#if</Shortcut>
        <Description>Фрагмент кода для #if</Description>
        <Author>Microsoft Corporation</Author>
        <SnippetTypes>
           <SnippetType>Expansion</SnippetType>
           <SnippetType>SurroundsWith</SnippetType>
        </SnippetTypes>
     </Header>
     <Snippet>
        <Declarations>
           <Literal>
              <ID>expression</ID>
              <ToolTip>Выражение препроцессора для вычисления</ToolTip>
              <Default>true</Default>
           </Literal>
        </Declarations>
        <Code Language="csharp"><![CDATA[#if ($expression$)
{
   $selected$ $end$ 
}]]>
     </Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>

Можно ли создавать свои сниппеты?

Да, можно, это позволяет достаточно сильно экономить время. Но это не просто команда CNTRL+C и CNTRL+V, сниппеты позволяют использовать параметры, и кое-что еще.

Способы создания:

  • копировать код уже готового шаблона сниппета и доработать его;
  • создать с нуля.

Мы рассмотрим второй способ.

Создаем новый файл (Add->New Item…->XML File) и даем ему имя (MySnippet.xml)

Теперь мы можем создать свой сниппет:

Выбираем snippet

В итоге мы получили пустой шаблон (желтым отмечены строки, которые мы можем менять)

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippet Format="1.0.0" xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
  <Header>
    <Title>заголовок</Title>
    <Author>автор</Author>
    <Shortcut>ярлык</Shortcut>
    <Description>описание</Description>
    <SnippetTypes>
      <SnippetType>SurroundsWith</SnippetType>
      <SnippetType>Expansion</SnippetType>
    </SnippetTypes>
  </Header>
  <Snippet>
    <Declarations>
      <Literal>
        <ID>имя</ID>
        <Default>значение</Default>
      </Literal>
    </Declarations>
    <Code Language="XML">
      <![CDATA[<test>
      <name>$имя$</name>
      $selected$ $end$</test>]]>
    </Code>
  </Snippet>
</CodeSnippet>

После того, как мы все настроим, нужно переименовать файл с расширением *.snippet

Теперь добавляем сниппет: Tools->Code Snippets Manager…->Import…

Открываем папку, где мы работаем и выбираем сниппет и папку, в которую его поместим.