Генерация кода

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

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

Генерация кода из использований в ReSharper

Действие Create from usage

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

Меню Generate в ReSharper

Генерация членов типа

Для быстрой генерации различных членов типа с помощью ReSharper достаточно нажать Alt+Ins.

Генерация конструкторов типов

Генерация конструкторов типов

Выберите Constructor в контекстном меню Generate, затем выберите поля, автосвойства и базовые конструкторы, которые требуется инициализировать в создаваемом конструкторе. Таким образом вы создадите конструктор всего за несколько нажатий клавиш.

Реализация/переопределение методов

Создание заглушек для реализации интерфейса или переопределения унаследованных функций-членов. Если указан список доступных методов для реализации или переопределения, генерируются соответствующие заглушки. Если в ответ на запрос выбрать несколько методов, можно создать несколько заглушек разом. Переопределенные свойства можно сделать автоматическими.

Генерация делегирующих членов

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

Генерация свойств

Сначала выберите команду Read-only properties или Properties в меню Generate. Затем выберите поле или несколько полей в ответ на запрос в диалоговом окне. Готово. Если требуется, можно сделать новое свойство виртуальным или скопировать XML-документацию из объявлений полей.

Генерация форматирующих членов

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

Генерация членов равенства

Быстрая генерация методов Equals() и GetHashCode() для текущего типа. ReSharper не только создает методы, но и генерирует код для проверки равенства и/или вычисления хэш-кода. Кроме того, ReSharper позволяет генерировать операторы «равно» и «не равно», а также интерфейс IEquatable<T> с сильной типизацией.

Возможности генерации кода

Настройка генерации кода

Предусмотрено несколько способов управления генерацией новых членов.

Во-первых, вы можете настроить собственные правила именования для разных членов. Если правила именования установлены, ReSharper выполняет их требования при создании новых членов.

Остальные параметры настраиваются в меню ReSharper | Options | Code Editing | Members Generation. Например, можно выбрать один из вариантов содержимого тела членов, которое должно генерироваться по умолчанию: NotImplementedException(), возврат значения по умолчанию, некомпилируемый код.

Обратите внимание:

Все сочетания клавиш, приведенные на этой странице, соответствуют набору сочетаний «Visual Studio», использующемуся в ReSharper по умолчанию. Подробнее о двух наборах сочетаний клавиш, доступных в ReSharper, вы можете узнать в его документации.