Окна Command и Immediate в Visual Studio

122

Окно Command

По мере углубления ваших знаний о системе Visual Studio 2013 вы будете проводить все меньше времени в поисках функциональных свойств и чаще будете использовать комбинации клавиш, чтобы перемещаться в интегрированной среде разработки и выполнять определенные действия. Одно из инструментальных окон, которое открывается чаще других, - окно Command (View --> Other Windows --> Command Window <Ctrl+Alt+A>). Когда открыто это окно, можете выполнить любую существующую команду или макрос, а также любой дополнительный макрос, который можете написать и сохранить. На рисунке ниже показано, как с помощью технологии IntelliSense открыть список команд, которые можно выбрать в окне Command. Этот список будет содержать все макросы, определенные в текущем решении.

Список команд в окне Command

Полный список команд системы Visual Studio можно открыть с помощью узла Environments Keyboard, содержащегося в диалоговом окне Options (Tools --> Options). Все команды имеют одинаковый синтаксис, основанный на области интегрированной среды разработки, для которой они созданы. Например, можете открыть окно отладки (Debug --> Windows --> Output), набрав команду Debug. Output в окне Command.

Все команды разделяются на три группы. Одни являются просто методами быстрого открытия инструментальных или диалоговых окон (которые открываются, если до этого были закрыты). Например, команда File.NewFile открывает новое диалоговое окно. Другие команды запрашивают информацию о текущем решении или отладчике. Команда Debug.ListThreads позволяет получить список текущих потоков, а команда Debug.Threads открывает инструментальное окно Threads. К третьему типу принадлежат команды, которые выполняют действия без открытия диалогового окна. К ним относится большинство макросов и команд, принимающих аргументы (полный список этих команд, включая аргументы, которые они принимают, можно найти в документации MSDN). Между этими группами существуют пересечения: например, команда Edit.Find может выполняться как с аргументами, так и без них. Если эта команда выполняется без аргументов, то открывается диалоговое окно Find and Replace. В качестве альтернативы следующая команда найдет все вхождения строки MyVariable в текущем документе (/d) и поставит маркер на границе окна кода напротив соответствующих строк (/m):

Edit.Find MyVariable /m /d

Несмотря на то что в окне Command применяется технология IntelliSense, набор часто используемых команд может показаться утомительным. В системе Visual Studio 2013 существует возможность присваивать некоторым командам альтернативные имена, или псевдонимы. Например, для присваивания псевдонима можно использовать команду alias, а для поиска команды, использованной ранее, команду e?:

alias e? Edit.Find MyVariable /m /d

Определив этот псевдоним, можно легко выполнить эту команду в любом месте интегрированной среды разработки: нажмите комбинацию клавиш <Ctrl+Alt+A>, чтобы установить фокус на окно Command, затем наберите команду "e?", чтобы выполнить команду "найти и пометить".

В начале работы с системой Visual Studio 2013 будет импортировано большое количество псевдонимов, заданных по умолчанию и относящихся к настройкам среды. Перечислить их можно с помощью команды alias без аргументов. В качестве альтернативы при желании найти, какие именно команды относятся к конкретному псевдониму, можете выполнить команду alias, задав в качестве аргумента соответствующий псевдоним. Например, выполнив запрос к предыдущем псевдониму "e?", будет получено следующее:

>alias e?
alias e? Edit.Find MyVariable /m /d

К псевдонимам можно применять два дополнительных переключателя. Переключатель /delete вместе с псевдонимом удаляет ранее определенный псевдоним. Если вы хотите удалить все ранее определенные вами псевдонимы и вернуться к предыдущим именам, можно использовать переключатель /reset.

Окно Immediate

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

Если вы пишете программы на языке Visual Basic, то не сможете явно объявить переменную в окне Immediate (например, Dim x as Integer), но это можно сделать неявно с помощью оператора присваивания. В примере, продемонстрированном на рисунке ниже, создается новый объект класса Customer, который присваивается переменной "c", а затем используется в ряде операций. Если вы пишете программы на языке C#, то новые переменные в окне Immediate должны быть явно объявлены еще до присваивания им какого-либо значения.

Окно Immediate с несколькими запросами

Окно Immediate частично поддерживает технологию IntelliSense, и вы можете использовать стрелки для просмотра истории выполненных команд. Значения переменных можно вывести на экран с помощью инструкции Debug.Print. В качестве альтернативы можете использовать их псевдоним "?". В языке C# ни тот ни другой прием не нужен; для того чтобы вывести на экран значение переменной, наберите имя переменной в окне и нажмите клавишу <Enter>.

Если вы выполняете какую-нибудь команду в окне Immediate, работая в режиме проектирования, то система Visual Studio, прежде чем выполнить команду, сначала соберет решение. Если ваше решение не скомпилируется, то выражение не будет вычислено, пока ошибка компиляции не будет устранена. Если код исполняемой команды содержит активную контрольную точку, то в этом месте выполнение команды будет остановлено. Это может быть полезным, если вы работаете с конкретным методом, который требуется проверить без запуска всего приложения.

Открыть окно Immediate можно с помощью команды Debug --> Windows --> Immediate или комбинации клавиш <Ctrl+Alt+I>, но, если вы работаете, поочередно переключаясь между окнами Command и Immediate, то, вероятно, захотите использовать заранее установленные псевдонимы cmd и immed соответственно.

Обратите внимание на то, что для того чтобы выполнить команду в окне Immediate, необходимо добавить префикс ">" (например, для того, чтобы перейти к окну Command, надо выполнить команду >cmd); в противном случае система Visual Studio попытается вычислить команду. Кроме того, вы должны быть уверены, что язык, используемый в окне Immediate, совпадает с языком, на котором создается активный проект. Примеры, приведенные на рисунке выше, работают, только если текущий активный проект создан на языке Visual Basic.

Пройди тесты
Лучший чат для C# программистов