Статьи

Как Решарпер качает мой средний рабочий день.


Я использую 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 и выбрать его инициализацию с помощью конструктора решает, что:

Резюме

Это те функции, которые я использую больше всего. Какая ваша любимая особенность?