Я использую Resharper с тех пор, как начал писать код в .NET / C #. Это инструмент с множеством функций, который помогает вам в повседневной разработке. В этом посте я покажу вам функции, которые я использую чаще всего.
Enter ALT + Enter
ALT + Enter — это горячая клавиша, с которой вы должны начать. Это контекстно-зависимый зверь, который сделает больше всего за вас.
Работа с классами
Допустим, я создаю новый класс:
public class UserRepository { }
В нем мне нужно использовать
DbContext
. Поэтому я создаю новое поле участника:
public class UserRepository
{
DbContext _dbContext;
}
тем не менее, когда я набираю точку с запятой private
для меня:
public class UserRepository { private DbContext _dbContext; }
Решарпер видит, что он не был инициализирован, и выдает предупреждение (пылесос над полем):
Нажатие ALT + ENTER создает конструктор для меня:
что приводит к:
class UserRepository { private DbContext _dbContext; public UserRepository(DbContext dbContext) { if (dbContext == null) throw new ArgumentNullException("dbContext"); _dbContext = dbContext; } }
Теперь я хочу убедиться, что null
это не передается, поэтому я нажимаю ALT + ENTER на имени аргумента:
который добавляет проверку аргумента:
class UserRepository { private DbContext _dbContext; public UserRepository(DbContext dbContext) { if (dbContext == null) throw new ArgumentNullException("dbContext"); _dbContext = dbContext; } }
Допустим, я создаю новый метод, в котором я решаю изменить тип возвращаемого значения:
class UserRepository { private DbContext _dbContext; public UserRepository(DbContext dbContext) { if (dbContext == null) throw new ArgumentNullException("dbContext"); _dbContext = dbContext; } public User[] Find() { // this is a method with some logic in it return _dbContext.Users.ToList(); } }
Но так как это не соответствует, код не будет компилироваться. Поэтому я нажимаю ALT + ENTER в операторе возврата:
Теперь я хочу кешировать пользователей. Поэтому мне нужно сослаться на кеш, который существует в другом проекте. Я делаю это, записывая имя и использую ALT + ENTER:
Этот шаг добавит ссылку на другой проект и импортирует правильное пространство имен. После этого я снова нажимаю ALT + ENTER на имени поля и добавляю конструктор.
Переименование файлов
Допустим, я переименовал класс, просто набрав новое имя (имя файла все еще старое):
Затем я нажимаю ALT + Enter на имя класса:
файл теперь переименован.
Обновить пространства имен
Файл из предыдущего примера также следует переместить в новую папку. Поэтому я просто перетащил его в новую папку. Тем не менее, пространство имен теперь не является правильным, поэтому Resharper выдает предупреждение (визуальным указанием = синим подчеркиванием):
Это означает, что я могу просто нажать ALT + ENTER, чтобы переименовать пространство имен (что также обновляет все использования в решении).
Резюме
Только ALT + ENTER экономит ваше время при наборе текста и нажатии. Но самое главное: вы получаете намного лучший поток при кодировании. Нет раздражающих остановок для базовой загрузки.
Модульные тесты
Resharper предоставляет вам новый браузер модульных тестов и контекстные действия для каждого теста.
Допустим, вы создаете простой тест:
который вы запускаете:
и получить результат
Стек вызовов интерактивен, что облегчает просмотр стека вызовов, чтобы понять, почему тест не пройден. Все, что записано в console ( Console.WriteLine()
), также включается в вывод.
Кодовая навигация
Завершение кода в Resharper позволяет использовать сокращения (верблюжьи горбы) для завершения текста:
Если я наберу еще одну букву, я получу только одно совпадение
Когда вы кодируете абстракции (интерфейсы), вы, вероятно, захотите перейти к реализации. ReSharper добавляет новый пункт контекстного меню, который позволяет вам сделать это:
Если есть только одна реализация, она открывается напрямую. Если их несколько, вы получите список:
CTRL + T открывает диалог, который вы можете использовать для перехода к любому типу. Вы можете ввести сокращения или частичные имена:
CTRL + SHIFT + T похож, но используется для файлов:
Наконец, у нас есть «Find usages», который анализирует код и находит, где используется тип / метод
Очистка кода
Этот хорошо структурированный файл может быть только лучше:
Я нажимаю ALT + E, C, чтобы начать диалог очистки:
«Usevar» — это мое собственное пользовательское правило, в котором я меняю все возможные способы использования вместо var
явных объявлений.
Результат:
Обратите внимание, что свойство перемещено выше метода и что неиспользуемые директивы «using» были удалены. Вы также можете автоматически сортировать методы и свойства.
Наконец, Resharper показывает предупреждение о свойстве (так как оно не инициализировано). ALT + Enter и выбрать его инициализацию с помощью конструктора решает, что:
Резюме
Это те функции, которые я использую больше всего. Какая ваша любимая особенность?