Visual studio быстрое создание свойства
Visual Studio является одним из самых мощных и распространённых инструментов разработки с 20-летней историй. Среда разработки представляет так много инструментов для работы с кодом, что в этих инструментах легко потеряться, упустив из виду какую-нибудь важную фишку. Не всегда понятно, какие инструменты из огромного набора реально полезны в повседневной жизни разработчика, а какие используются редко или добавлены в маркетинговых целях.
Странно, что в русскоязычном интернете очень мало статей на эту тему. Когда я искал информацию, я натыкался либо на очень короткие статьи, описывающие небольшой набор узко специализированных фишек, либо, наоборот, на слишком длинные статьи (типа MSDN), в которых можно утонуть. Поэтому я решил сам написать небольшую статью на эту тему. Статья представляет собой перечисление важных возможностей Visual Studio, которыми я пользуюсь много лет. Как разработчик с 15-летним стажем, настоятельно рекомендую пользоваться этими фишками в своей работе.
Настройка Visual Studio
Цвета и шрифты. Вы можете настраивать цвета и шрифты среды Visual Studio в окне средства→параметры→окружение→шрифты и цвета. Перед этим лучше выбрать цветовую схему в окне средства→параметры→окружение→цветовая схема, после чего можно «уточнять» цветовую схему дополнительными настройками шрифтов и цвета.
Горячие кнопки. Вы можете настроить горячую кнопку (сочетание клавиш) на любую команду в Visual Studio. Для этого откройте окно средства→параметры→окружение→клавиатура, введите название команды и сочетание клавиш для вызова этой команды.
Плагины. Настоятельно рекомендую установить плагин JetBrains Resharper, который внедряется в Visual Studio и предоставляет много полезных инструментов для работы с кодом.
Навигация
Зайти внутрь метода. Вы можете зайти внутрь вызываемого метода и посмотреть его код. Для этого нужно нажать на Ctrl и кликнуть мышкой по методу, либо установить каретку на методе и нажать F12. Команда работает не только для методов, но и вообще для всего (классов, переменных и. т. д.). Resharper интегрирует эту команду с дизассемблером, благодаря этому можно смотреть код метода, даже если в проекте нет его исходников.
Выйти наружу метода. Вы можете найти все места в коде, где используется выбранный метод. Для этого кликните по методу мышкой и выберите в контекстном меню «Найти все ссылки». У решарпера есть аналогичная команда, но более продвинутся (rонтекстное меню→find usages). Помимо отображения всех мест где используется этот метод, решарпер может сразу же перейти в то место, откуда вызывается указанный метод, что очень удобно. Рекомендуется настроить горячую кнопку на эту команду.
Поиск метода. Помимо стандартного поиска Ctrl+F, в студии есть и более удобный поиск с подсказками. Запустите команду правка→перейти→перейти к символу и начните набирать название метода. Студия будет сама подсказывать варианты, к какому методу перейти. Похожий инструмент есть и в решарпере (resharper→navigate→goto symbol). Рекомендуется настроить удобную горячую кнопку на эту команду.
Работа с кодом
Переименование. Вы можете переименовывать классы, методы и переменные с помощью команды студии контекстное меню→переименовать. Решарпер поддерживает и более продвинутое переименование (resharper→refactor→rename либо F2). В частности, решапрер при переименовании класса может заодно переименовать файл с этим классом плюс экземпляры этого класса.
Выделение фрагмента кода в метод. Вы можете перенести выделенный фрагмент кода в отдельный метод, запустив команду правка→рефакторинг→извлечь метод.
Создание несуществующих объектов. Студия может сама создавать недостающий с ее точки зрения код (с согласия разработчика, разумеется). Например, если вы вызовите в коде несуществующий метод, студия предложит его автоматически сгенерировать. Если вы добавите параметр в объявлении конструктора класса, студия предложит создать соответствующее поле класса с инициализацией этого поля в конструкторе.
Вертикальное выделение. Зажмите Ctrl и выделите мышкой прямоугольную область в коде. Эту прямоугольную область можно скопировать, вставить и удалить. Помимо этого, если после выделения вы начнете набирать текст, он будет набираться одновременно во всех выделенных строках. Вертикальное выделение облегчает работу с повторяющимися похожими строками.
Работа с проектами
Выгрузка проекта. Если вы работаете в солюшене с большим числом проектов, лишние проекты можно «выгрузить» из студии, что бы они не мешались и не засоряли обзор. Для этого выберите в контекстом меню проекта команду «выгрузить проект». Студия будет работать так, как будто этих проектов нет в решении. Это безопасное операция (ничего не удаляется), вы всегда можете загрузить проект обратно через контекстное меню проекта (команда перезагрузить проект).
Отладчик
Отладчик помогает быстро исследовать код и находить причину багов, что существенно увеличивает производительность труда разработчика. Помимо очевидных методов его использования (брейкпоинт, после которого идем по шагам), у него есть и не совсем очевидные фишки:
Окно Watch (окно контрольных значений) – в этом окне отладчика вы можете не только просматривать значения переменных, но и изменять их, а также запускать выражения и методы, просто вписав их в контрольные значения окна.
Значения переменных – вы можете просматривать и изменять значения переменных во время отладки во всплывающем окне, которое появляется при наведении мышкой на переменную.
Дополнительные инструменты
Производительность. Студия поддерживает профилировщик для анализа узких мест производительности (анализ→профилировщик производительности), но этот инструмент используется редко из-за его сложности.
Удалённая отладка. Visual Studio предоставляет техническую возможность проводить отладку удаленно, подключаясь к серверу с локальной машины. Но такая отладка долго и сложно настраивается (с привлечением администраторов сервера). Поэтому удаленную отладку применяют, только если на это есть серьезные причины.
Быстрые действия можно использовать для решения следующих задач:
-
нарушений правил анализа кода или настройка их уровня серьезности;
Этот раздел относится к Visual Studio в Windows. Информацию о Visual Studio для Mac см. в статье Рефакторинг кода (Visual Studio для Mac).
Быстрые действия можно применять, используя значок лампочки , значок отвертки или сочетание клавиш CTRL+ . когда курсор находится на строке кода, для которой доступно действие. Лампочка, сигнализирующая об ошибке, отображается, если есть красная волнистая линия, указывающая на ошибку, и у Visual Studio есть решение этой ошибки.
Сторонние разработчики могут предоставить для любого языка пользовательскую диагностику и предложения, например в рамках пакета SDK, и лампочки Visual Studio будут отображаться на основе этих правил.
Значки
Значок, отображающийся при доступном быстром действии, указывает на тип доступного исправления или рефакторинга. Значок отвертки указывает, что доступны действия по изменению кода, но вам не обязательно их использовать. Значок желтой лампочки указывает, что доступны действия, которые следует сделать для улучшения кода. Значок лампочки с ошибкой указывает, что доступны действия для исправления ошибки в коде.
Отображение лампочки и отвертки
Если доступно исправление, отображаются лампочки:
При наведении курсора мыши на расположение ошибки.
В левом поле редактора при перемещении курсора в соответствующую строку кода.
Вы также можете нажать клавиши Ctrl+ . в любом месте строки, чтобы увидеть список доступных быстрых действий и рефакторингов.
Чтобы просмотреть возможные исправления, щелкните стрелку вниз рядом с лампочкой или ссылку Показать возможные исправления. Отобразится список доступных быстрых действий.
Действия для исправления ошибок
Описанные в этом разделе быстрые действия исправляют ошибки в коде, которые в противном случае привели бы к сбою сборки. Когда для устранения ошибки в строке кода доступны быстрые действия, значок, отображаемый в поле или под красной волнистой линией, имеет форму лампочки с красным крестом.
Исправление опечаток в символах или ключевых словах
Если вы неправильно вводите тип или ключевое слово в Visual Studio, это быстрое действие автоматически исправляет его. В меню лампочки отобразится следующий текст: Изменить "" на "" . Пример:
Разрешение конфликтов слияния Git
Эти быстрые действия позволяют устранить конфликты слияния Git, "применяя изменения", то есть удаляя конфликтующие маркеры и код.
Действия для удаления ненужного кода
Удаление ненужных директив using/Import
Быстрое действие Удалить ненужные директивы using/импорты удалит все неиспользуемые директивы using и Import в текущем файле. При выборе этого элемента удаляются неиспользованные импорты пространства имен.
Удаление ненужного приведения
Если вы приводите тип к другому типу, которому не требуется приведение, можно воспользоваться действием Удалить ненужное приведение.
Удаление неиспользуемых переменных
Это быстрое действие позволяет удалить объявленные переменные, которые нигде не используются.
Удаление типа из выражения значения по умолчанию
Это быстрое действие удаляет тип значения из выражения значения по умолчанию и использует литерал по умолчанию, если компилятор может вывести тип выражения.
Действия для добавления недостающего кода
Добавление директив using/imports для типов в ссылочных сборках, пакетах NuGet или других типов в решении
- Предлагать using/import для типов в эталонных сборках
- Предлагать using/import для типов в пакетах NuGet
Если параметр включен, при использовании типа в пространстве имен, которое еще не импортировано, но существует в ссылочной сборке или пакете NuGet, создается директива using/import.
Добавление отсутствующих элементов case и/или case по умолчанию
Используйте следующее перечисление и удалите оператор switch или Select Case :
Быстрое действие Добавить оба заполняет отсутствующие элементы case и добавляет элементы case по умолчанию.
Добавление проверки null для параметров
Это быстрое действие позволяет добавить в код проверку параметра на значение Null.
Добавление имени аргумента
Добавление фигурных скобок
Быстрое действие "Добавить фигурные скобки" заключает в скобки однострочные операторы if .
Добавление и упорядочивание модификаторов
Эти быстрые действия помогают отсортировать имеющиеся модификаторы доступа и добавить недостающие.
Преобразование кода
Преобразование конструкции if в конструкцию switch
Это быстрое действие позволяет преобразовать конструкцию if-then-else в конструкцию switch.
Преобразование в интерполированную строку
Интерполированные строки позволяют легко выразить строки с внедренными переменными по аналогии с методом String.Format . Это быстрое действие распознает использование сцепленных строк или оператора String.Format и переключается на использование интерполированной строки.
Использование инициализаторов объектов
Это быстрое действие позволяет использовать инициализаторы объектов, чтобы не вызывать конструктор и не добавлять строки операторов назначения.
Использование инициализаторов набора
Это быстрое действие позволяет использовать инициализаторы набора, чтобы не вызывать несколько раз метод Add из вашего класса.
Преобразование автосвойства в полное свойство
Это быстрое действие позволяет преобразовать автосвойство в полное свойство, и наоборот.
Преобразование тела блока в элемент с телом выражения
Это быстрое действие позволяет преобразовать тело блока в элемент с телом выражения. Оно предназначено для методов, конструкторов, операторов, свойств, индексаторов и методов доступа.
Преобразование анонимной функции в локальную
Это быстрое действие преобразует анонимные функции в локальные.
Преобразование ReferenceEquals в is null
Это быстрое действие предлагает использовать сопоставление шаблонов, а не шаблон кода ReferenceEquals , где это возможно.
Введение сопоставления шаблонов
Изменение основания для числовых литералов
Это быстрое действие позволяет преобразовать числовой литерал в систему счисления с другим основанием. Например, можно перевести любое шестнадцатеричное число в двоичное.
Добавление разделителей между цифрами в литералах
Это быстрое действие позволяет добавлять знаки-разделители в литеральные значения.
Использование явных имен кортежей
Это быстрое действие выявляет области, где можно использовать явные имена кортежей вместо Item1, Item2 и т. д.
Использование выводимых имен
Это быстрое действие выделяет места в коде, которые можно упростить путем использования предполагаемых имен элементов в анонимных типах или в кортежах.
Деконструирование объявления кортежа
Это быстрое действие позволяет деконструировать объявления переменных в кортежах.
Превращение метода в синхронный
Когда для метода используется ключевое слово async или Async , ожидается, что внутри этого метода также будет использоваться ключевое слово await или Await . Но если это не так, появится быстрое действие, которое позволяет сделать метод синхронным, удалив ключевое слово async или Async и изменив тип возвращаемого значения. Используйте параметр Синхронизация метода в меню быстрых действий.
Превращение метода в асинхронный
При указании ключевого слова await или Await в методе предполагается, что сам метод помечен ключевым словом async или Async . Однако если это не так, появится быстрое действие, позволяющее сделать метод асинхронным. Используйте параметр Make method/Function asynchronous (Сделать метод/функцию асинхронными) в меню быстрых действий.
Сюда буду добавлять горячие клавиши в Visual Studio, способы быстрого ввода и прочие фишки, позволяющие кодить более комфортно.
Начнем с самого простого, что бывает нужно начинающему программисту:
cw + 2 раза Tab = Console.WriteLine();
Далее материалы статьи с Хабра, где-то с моими дополнениями, но в основном в чистом виде:
Комментирование
Ctrl+K,C — закомментировать выбранные линии в коде.
Ctrl+K,U — раскомментировать выбранные линии в коде.
Если перед именем метода набрать /// — автоматически будут добавлены XML комментарии, которые потом можно использовать для создания документации. Туда можно вписать название метода, описание переменных и т.п. Далее при использовании данного метода будут всплывать подсказки как раз с этой информацией.
Поиск
Ctrl+F — открывается стандартное окно поиска, если в буфер недавно было скопирован текст, то он автоматически подставиться.
Ctrl+F3 — поиск «активного» текста вниз (который выделен или слово на котором стоит курсор), без копирования в буфер обмена.
Ctrl+Shift+F3 — поиск «активного» текста вверх.
Ctrl+I — и начинаете печатать текст, этакий runtime поиск.
Вызов базового джина
Вам лень писать текст полностью?! Скорость выпадающего Intellisence не устраивает несущуюся впереди вас вашу мысль?!
Тогда самое время применить следующии комбинации:
Ctrl+Space — вызов Intellisence с показом «слов»
Ctrl+J — если вы подзабыли название метода класса или его свойсто, то эта комбинация вам поможет. Можно применять и предыдущую, но эта более «умная».
Ctrl+K, X — показ всех сниппетов, которые у вас есть, в виде выпадающего списка, использование интуитивно понятно 🙂
короткое_имя_снипета+Tab — использовать сниппет в коде.
Навигация по коду
Если обратите внимание то студия, по своей природе MDI, значит должна быть возможность перемещаться, между окнами:
Ctrl+Tab — аналог Alt+Tab в Windows, только применимо к студии.
Очень удобным инструментом в студии являются закладки, да-да, по аналогии с книжными. Можно отметить код чтобы потом перейти к нему:
Ctrl+B, T — поставить/снять закладку.
Ctrl+B, Ctrl+C — удалить все закладки.
Ctrl+B, N — перейти к следующей закладке.
Ctrl+B, P — перейти к предыдущей закладке.
Форматирование и редактирование
Многие знают и используют Ctrl+C и Ctrl+V, но студия обладает ещё рядом удобным комбинаций:
Ctrl+Shift+V — не отпуская Ctrl+Shift и нажимая на V, вы сможете вставить один из 10 последних кусков текста, скопированных в буфер обмена.
Tab — увеличить отступ.
Shift+Tab — уменьшить отступ.
Мне иногда не хватало вертикального выделения текста, бывает полезно. Оказывается и такая возможность есть! Стоит нажать Alt, и не отпуская, выделять мышкой текст. Но есть минус — меню и стрелочки клавиатуры :). Это решаемо, нажимаете Shift+Alt и используете стрелочки Left или Right
Если код доставшийся вам «грязен», не только по структуре, но и по внешнему оформлению, используйте:
Ctrl+E+D — форматирование всего документа, позволяет привести документ в более удобоваримый вид.
Ctrl+E+F — форматирование выбранной части текста
Иногда в целях рефакторинга или ещё каких-то благих начинаниях, есть смысл перевести все буквы в верхний или нижний регистр:
Ctrl+Shift+U — перевести выделенный блок в верхний регистр
Ctrl+U — перевести выделенный блок в нижний регистр
Небольшой экскурс в сборку и отладку
Конечно же со стороны хоткеев 🙂
Начнём со «сборки»:
Ctrl+Shift+B или F6 — собрать solution.
Shift+F6 — собрать активный проект.
Если честно, тут я немного пошаманил, заточив под себя, иногда бывает удобно пересобрать проект RebuildSolution, но почему-то хоткей для этого не предусмотрен, я поступил следующий образом:
F6 — собрать solution
Ctrl+Shift+B — пересобрать solution
Поступил я так из-за соображения, что иногда студия не выполняет пересборку проекта, а пишет «up-to-date», а мне нужно именно пересобрать.
Если появились ошибки, это плохо, но никто от них не застрахован:
F5 — запустить программу, с возможностью отладки. Или продолжить выполнение программы, после точки останова.
Ctrl+F5 — запустить программу без отладки
F9 — поставить/убрать точку останова — breakpoint
Ctrl+Shift+F9 — удалить все точки останова.
F10 — выполнить код, без захода внутрь
F11 — выполнить код, с заходом внутрь
В режиме отладки есть два типа просмотра — Watch и QuickWatch.
Вызвать QuickWatch вы можете нажав Ctrl+D, Q. Просто Watch — Ctrl+D, W.
Отладчик
Использование F10 вместо F5 для сборки, запуска и присоединения отладчика автоматически прерывается при первом выполнении вашего собственного кода. В точках останова нет необходимости.
Поддерживается начиная с Visual Studio 2005
Reattach to process (Shift+Alt+P) чрезвычайно полезная функция, которая помогает снова и снова присоединяться к одному и тому же процессу.
Поддерживается начиная с Visual Studio 2017 v15.8
Синяя точка на поле указывает на переключение потоков при выполнении отладки.
Поддерживается начиная с Visual Studio 2013
Продолжение под катом!
Solution
Повысьте производительность загрузки решения и уменьшите визуальный шум, отключив восстановление расширений узлов в Solution Explorer, а также Reopen documents on solution load.
Поддерживается начиная с Visual Studio 2019
Для быстрой навигации используйте Ctrl+T, чтобы найти что-либо в вашем решении — файлы, классы и т. д.
Поддерживается начиная с Visual Studio 2017
Назначьте сочетание клавиш для выполнения “git pull”, чтобы не приходилось использовать для этого CLI или Team Explorer.
Поддерживается начиная с Visual Studio 2019
Дайте Solution Explorer возможность автоматически выбирать текущий активный документ, чтобы никогда не терять его расположение в проекте.
Поддерживается начиная с Visual Studio 2010
Редактор
Легко выделяйте HTML-элементы тегом div, используя комбинацию Shift+Alt+W. Вставленный div вы можете легко отредактировать на любой тег, который вы хотите, и закрывающий тег изменится автоматически.
Поддерживается начиная с Visual Studio 2017
Поддерживается начиная с Visual Studio 2013
Вам не нужно самостоятельно ставить двойные кавычки вокруг имен свойств JSON — просто введите двоеточие, и Visual Studio автоматически поставит их.
Поддерживается начиная с Visual Studio 2015
Сделайте IntelliSense и всплывающие подсказки полупрозрачными на время нажатия и удержания Control.
Поддерживается начиная с Visual Studio 2010
Вместо повторного ввода ‘(‘ для отображения информации о параметрах в сигнатурах методов используйте Ctrl+Shift+Space для отображения используемой в данный момент перегрузки.
Поддерживается начиная с Visual Studio 2010
Прочее
Воспроизведение звука при возникновении определенных событий в Visual Studio.
Поддерживается начиная с Visual Studio 2010
Создавайте собственные макеты окон для конкретных сценариев разработки или настроек монитора, а также легко переключайтесь между ними.
Поддерживается начиная с Visual Studio 2017
Укажите необходимые компоненты Visual Studio для любого решения, и Visual Studio предложит пользователю установить их, если они отсутствуют. Подробнее читайте в статье «Конфигурируйте Visual Studio в вашей организации с помощью .vsconfig».
Поддерживается начиная с Visual Studio 2019
Расширения
Visual Studio Spell Checker. Расширение редактора, которое проверяет орфографию комментариев, строк и обычного текста. Оно также может проверять орфографию всего решения, проекта или выбранных элементов. Доступны опции для определения нескольких языков для проверки правописания.
Поддерживается начиная с Visual Studio 2013
Add New File. Расширение для Visual Studio, позволяющее простое добавление новых файлов в любой проект. Просто нажмите Shift+F2, чтобы создать пустой файл в выбранной папке или в той же папке, что и выбранный файл.
Поддерживается начиная с Visual Studio 2015
Git Diff Margin. Git Diff Margin отображает текущие изменения Git в редактируемом файле на поле и на полосе прокрутки Visual Studio.
Поддерживается начиная с Visual Studio 2012
Это были лишь несколько из тысяч доступных расширений. Чтобы увидеть больше — перейдите на Visual Studio Marketplace.
В заключение
Читайте также: