Извлечение и встроенные рефакторинги

Visual Studio предоставляет несколько рефакторингов для извлечения кода в новые конструкции или встраивание кода для упрощения базы кода. Эти рефакторинги можно получить через меню быстрых действий и рефакторингов (CTRL+.).

Метод извлечения

Применимо к: C#, Visual Basic

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

  1. Выделите извлеченный код:

    • C#:

      Снимок экрана: код C# для класса Program. В основной функции этого класса выделена строка кода.

    • Visual Basic:

      Screenshot кода Visual Basic для основного подраздела. В этом подразделе выделена строка кода.

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

    • Клавиатура
      • Нажмите клавиши CTRL+R, а затем CTRL+M. (Сочетание клавиш может отличаться в зависимости от выбранного профиля.)
      • Нажмите клавиши CTRL+. Чтобы активировать меню "Быстрые действия" и "Рефакторинг" и выберите "Извлечь метод " во всплывающем окне предварительного просмотра.
    • Мышь
      • Выберите "Изменить > метод извлечения рефакторинга>".
      • Щелкните код правой кнопкой мыши и выберите метод извлечения рефакторинга >>.
      • Щелкните правой кнопкой мыши код, выберите меню "Быстрые действия" и "Рефакторинг" и выберите "Извлечь метод " во всплывающем окне предварительного просмотра.

    Метод будет немедленно создан. Теперь метод можно переименовать, введя новое имя.

    Подсказка

    Вы также можете обновить примечания и другие строки, чтобы использовать это новое имя, а также предварительный просмотр изменений перед сохранением, используя флажки в поле "Переименовать ", которое отображается в правом верхнем углу интегрированной среды разработки.

    • C#:

      Снимок экрана: код C# для класса Program. Выделено имя метода, и откроется всплывающее окно

    • Visual Basic:

      Screenshot кода Visual Basic для основного подраздела. Выделено имя метода, а всплывающее окно переименования — open.

  3. Когда вы довольны изменением, нажмите кнопку "Применить " или нажмите клавишу ВВОД , и изменения будут зафиксированы.

Извлечение локальной функции

Применимо к: C#

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

  1. Выделите извлеченный код.

  2. Нажмите CTRL+., чтобы открыть меню Быстрые действия и рефакторинг.

  3. Выберите Извлечь локальную функцию.

    Screenshot окна кода Visual Studio с выделенной строкой. Меню быстрых действий и рефакторингов открыто, а локальная функция выбрана.

Извлечение базового класса

Применимо к: C#, Visual Basic

Это рефакторинг извлекает элементы из выбранного класса в новый базовый класс, который полезен при совместном использовании членов между классами через наследование.

  1. Поместите курсор на имя класса или выделенный элемент.

  2. Нажмите CTRL+., чтобы открыть меню Быстрые действия и рефакторинг.

  3. Выберите член(ы), которые будут перенесены в новый базовый класс.

    Снимок экрана: диалоговое окно

Откроется новое диалоговое окно "Извлечь базовый класс ", где можно указать имя базового класса и расположение места размещения. Вы можете выбрать элементы, которые нужно перенести в новый базовый класс, и выбрать абстрактный элемент, установив флажок в столбце Make abstract column.

Извлечение интерфейса

Применимо к: C#, Visual Basic

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

  1. Поместите курсор в имя класса.

    • C#:

      Снимок экрана: выделенный код для извлечения интерфейса — C#.

    • Visual Basic:

      Screenshot выделенного кода — Visual Basic.

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

    • Клавиатура
      • Нажмите клавиши CTRL+R, а затем CTRL+I. (Сочетание клавиш может отличаться в зависимости от выбранного профиля.)
      • Нажмите клавиши CTRL+. Чтобы активировать меню "Быстрые действия" и "Рефакторинг" и выберите пункт "Извлечь интерфейс " во всплывающем окне предварительного просмотра.
    • Мышь
      • Выберите "Изменить > интерфейс извлечения рефакторинга>".
      • Щелкните правой кнопкой мыши имя класса, выберите меню "Быстрые действия" и "Рефакторинг" и выберите пункт "Извлечь интерфейс " во всплывающем окне предварительного просмотра.
  3. В появившемся диалоговом окне "Извлечение интерфейса" введите запрашиваемые сведения:

    Снимок экрана: интерфейс извлечения.

    Поле Описание
    Новое имя интерфейса Имя создаваемого интерфейса. Имя по умолчанию — IClassName, где ClassName — это имя выбранного выше класса.
    Новое имя файла Имя созданного файла, содержащего интерфейс. Как и в случае с именем интерфейса, это имя по умолчанию имеет значение IClassName, где ClassName — это имя выбранного выше класса. Вы также можете выбрать параметр для добавления в текущий файл.
    Выбор общедоступных элементов для формирования интерфейса Элементы, которые необходимо извлечь в интерфейс. Вы можете выбрать столько, сколько вы хотите.
  4. Выберите OK.

    Интерфейс создается в файле указанного имени. Кроме того, выбранный класс реализует этот интерфейс.

    • C#:

      Снимок экрана: результирующий класс — C#.

      Снимок экрана: результирующий интерфейс — C#.

    • Visual Basic:

      Screenshot результирующего класса - Visual Basic.

      Screenshot результирующего интерфейса — Visual Basic.

Встроенный метод

Применимо к: C#, Visual Basic

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

  1. Поместите ваш курсор на использование метода.

  2. Нажмите CTRL+., чтобы открыть меню Быстрые действия и рефакторинг.

  3. Выберите один из следующих вариантов:

    Выберите Inline <QualifiedMethodName>, чтобы удалить объявление встроенного метода.

    Screenshot меню быстрых действий и рефакторингов в Visual Studio с выбранным параметром

    Выберите inline и сохраните <QualifiedMethodName> исходное объявление метода:

    Screenshot меню

Встроенная временная переменная

Применимо к: C#, Visual Basic

Это рефакторинг удаляет временную переменную и заменяет ее значением вместо этого, упрощая код, когда временная переменная затрудняет понимание кода.

  1. Выделите или поместите текстовый курсор в временную переменную, чтобы быть вложенной:

    • C#:

      Снимок экрана: выделенный код для встроенной временной переменной — C#.

    • Visual Basic:

      Screenshot выделенного кода— Visual Basic.

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

    • Клавиатура
      • Нажмите CTRL+., чтобы открыть меню Быстрые действия и рефакторинг.
    • Мышь
      • Щелкните код правой кнопкой мыши и выберите меню "Быстрые действия" и "Рефакторинг".
  3. Выберите встроенную временную переменную во всплывающем окне предварительного просмотра.

    Переменная удаляется, а ее использование заменено значением переменной.

    • C#:

      Снимок экрана: встроенный результат — C#.

    • Visual Basic:

      Screenshot встроенного результата — Visual Basic.