Поделиться через


Фрагменты кода и как их использовать

Фрагменты кода — это небольшие блоки кода для повторного использования, которые можно добавить в файл кода. Сниппеты обычно содержат часто используемые блоки кода, такие как Try...Finally или If...Else блоки. Вы также можете использовать фрагменты кода для добавления целых классов или методов.

Фрагмент кода имеет заголовок, который вы используете для выбора фрагмента, и может иметь имя ярлыка, которое вы можете ввести для вставки фрагмента. Сниппеты также могут содержать параметры замены, которые выступают в качестве заполнителей. Сниппеты доступны для многих языков, включая C#, C++ и Visual Basic.

Сниппеты расширения и сниппеты с объемным звучанием

Вы можете добавить в код два вида фрагментов кода:

  • Фрагмент расширения добавляется в указанную точку вставки.
  • Вокруг выбранного кода добавляется фрагмент с объемным звучанием, доступный только для C# и C++.

Найти доступные сниппеты

Чтобы просмотреть доступные фрагменты кода для языка, выберитеДиспетчер фрагментов кода> строке меню или нажмите клавиши Ctrl+K, B, а затем выберите нужный язык в раскрывающемся меню.

Скриншот диалогового окна Диспетчер фрагментов кода.

Сведения о создании и импорте собственного фрагмента кода для отображения в списке фрагментов см . в статье Пошаговое руководство: создание фрагмента кода в Visual Studio.

Добавление сниппета в файл кода

Чтобы добавить сниппет в файл кода:

  1. В редакторе кода поместите курсор или выберите код C# или C++ в том месте, куда вы хотите добавить фрагмент.

  2. Выполните одно из следующих действий:

    • В строке меню Visual Studio выберите команду Изменить> фрагмент кодаIntelliSense>для вставки или Изменить>графическое окружение IntelliSense>с помощью.
    • Щелкните правой кнопкой мыши и выберите в контекстном меню «>Вставлять фрагмент кода» или «Окружать фрагмент фрагмента>».
    • На клавиатуре нажмите клавиши Ctrl+K, X , чтобы получить фрагмент расширения, или Ctrl+K, S , чтобы получить фрагмент объемного звука.
  3. Дважды нажмите нужный фрагмент кода в раскрывающемся списке или введите ярлык фрагмента и нажмите клавишу Tab или Enter.

Добавление сниппета расширения

Например, во фрагменте tryf расширения C# добавляется следующий Try...Finally блок:

try
{

}
finally
{

}

Чтобы добавить этот фрагмент расширения, выполните следующие действия.

  1. В редакторе кода наведите курсор в том месте, куда вы хотите добавить сниппет.
  2. Щелкните правой кнопкой мыши и выберите «Вставить фрагмент» в контекстном меню, вызываемом правой кнопкой мыши, или используйте строку меню или команды клавиатуры.
  3. Откройте папку Visual C# , а затем дважды щелкните tryf в раскрывающемся списке или выберите tryf и нажмите клавишу Tab или Enter.

Подсказка

Вы также можете поместить курсор в точку вставки, ввести tryf, а затем дважды нажать клавишу Tab .

Добавьте сниппет с объемным звуком

В следующем примере фрагмента кода C++ ярлык if можно использовать либо в качестве фрагмента вставки, либо в качестве фрагмента объемного звука. Если вы выделите строку return FALSE; кода, а затем выберете Surround With>if, фрагмент будет развернут вокруг строки.

if (true)
{
    return FALSE;
}

Параметры замены сниппета

Сниппеты могут содержать параметры замены, которые являются заполнителями, которые необходимо заменить в соответствии с кодом, который вы пишете. В предыдущем примере показан параметр замены, true который заменяется соответствующим условием. Замена повторяется для каждого экземпляра этого параметра замены во фрагменте кода.

Например, в Visual Basic есть фрагмент кода, определяющий свойство. Чтобы вставить фрагмент кода:

  1. В контекстном меню, вызываемом правой кнопкой мыши, в файле кода Visual Basic выберите команду Snippet>Insert Snippet.
  2. Выберите шаблоны> кода, свойства, процедуры, события>,определите свойство.

Скриншот меню фрагмента кода для функции

Вставляется следующий код:

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

Если вы измените newPropertyValue на m_property, каждый экземпляр изменится newPropertyValue . Если вы измените String на в Int объявлении свойства, значение в методе Set также изменится на Int.

Рекомендации по использованию фрагментов кода

Код в фрагменте кода показывает только самый простой способ выполнения каких-либо действий. Для большинства приложений код должен быть изменен в соответствии с приложением.

Обработка исключений

Как правило, блоки сниппета Try...Catch кода перехватывают и повторно генерируют все исключения, но это может быть неправильным выбором для вашего проекта. Для каждого исключения существует несколько способов реагирования. Примеры см. в разделах Обработка исключения с помощью try/catch (C#) и Try... Ловить... Наконец, оператор (Visual Basic).

Расположения файлов

При адаптации расположения файлов к приложению обязательно учитывайте следующие факторы.

  • Найдите доступное место. У пользователей может не быть доступа к папке Program Files на компьютере, поэтому хранение пользовательских файлов вместе с файлами приложения может не работать.

  • Найдите безопасное место. Хранение файлов в корневой папке, такой как C:\ , небезопасно. Для данных приложения лучше всего использовать папку Application Data . Для данных отдельных пользователей приложение может создать файл в папке «Документы » каждого пользователя.

  • Используйте допустимое имя файла. Вы можете использовать элементы управления andOpenFileDialog, SaveFileDialog чтобы снизить вероятность появления недопустимых имен файлов.

  • Имейте в виду, что выбранный пользователем файл может быть удален до того, как код сможет манипулировать файлом. Кроме того, у пользователя может не быть разрешения на запись в файл.

Безопасность

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

  • Доступ к файлам и базам данных
  • Безопасность доступа к коду
  • Защита ресурсов, таких как журналы событий и реестр
  • Хранение секретов
  • Проверка входных данных
  • Передача данных в технологии скриптинга

Дополнительные сведения см. в разделе Защита приложений.

Скачанные фрагменты кода

Фрагменты кода, установленные Visual Studio, сами по себе не представляют угрозы безопасности. Однако они могут создавать риски безопасности в приложении. К сниппетам, скачанным из Интернета, следует относиться с особой осторожностью, как и к любому другому загруженному контенту. Скачивайте сниппеты только с сайтов, которым вы доверяете, и используйте up-toвирусное программное обеспечение.

Откройте все загруженные файлы сниппетов в Блокноте или редакторе XML Visual Studio и внимательно просмотрите их перед установкой. Остерегайтесь следующих проблем:

  • Код сниппета, который может повредить вашу систему при его выполнении. Внимательно прочитайте исходный код перед его запуском.

  • HelpURL блокирует в файлах сниппетов, содержащих URL-адреса, которые выполняют вредоносные файлы скриптов или отображают оскорбительные веб-сайты.

  • Сниппеты, содержащие ссылки, которые автоматически добавляются в ваш проект и могут быть загружены из любого места в вашей системе. Вы можете скачать эти ссылки из того же места, откуда скачиваете фрагмент. Затем фрагмент может вызвать метод в ссылке, который выполняет вредоносный код. Чтобы обнаружить такие ссылки, просмотрите блоки Imports и References файла сниппета.