Как вы используете Immediate Window в Visual Studio? - PullRequest
115 голосов
/ 27 апреля 2009

Immediate Window - чрезвычайно полезный инструмент для отладки приложений. Его можно использовать для выполнения операторов кода, которые действительны в контексте точки останова, и проверять значения. Я также использую его для ввода фрагментов кода для изучения особенностей языка.

Как вы используете Immediate Window?

Ответы [ 4 ]

125 голосов
/ 01 сентября 2009

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

Например, если у вас есть статический метод, который возвращает сумму двух чисел, таких как:

private static int GetSum(int a, int b)
{
    return a + b;
}

Затем в Immediate Window вы можете ввести следующее:

? GetSum(2, 4)
6

Как вы можете видеть, это действительно хорошо работает для статических методов. Однако, если метод нестатический, вам нужно взаимодействовать со ссылкой на объект, которому принадлежит метод.

Например, скажем так выглядит ваш класс:

private class Foo
{
    public string GetMessage()
    {
        return "hello";
    }
}

Если объект уже существует в памяти и находится в области видимости, то вы можете вызвать его в «Немедленном окне», если он был создан до вашей текущей точки останова (или, по крайней мере, до того момента, когда код приостановлен в режиме отладки):

? foo.GetMessage(); // object ‘foo’ already exists
"hello"

Кроме того, если вы хотите напрямую взаимодействовать и тестировать метод, не полагаясь на существующий экземпляр в памяти, вы можете создать экземпляр своего собственного экземпляра в Immediate Window:

? Foo foo = new Foo(); // new instance of ‘Foo’
{temp.Program.Foo}
? foo.GetMessage()
"hello"

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

? string msg = foo.GetMessage();
"hello"
? msg + " there!"
"hello there!"

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

? new Foo().GetMessage()
"hello" 

Очень распространенный способ увидеть значение метода - это выбрать имя метода класса и выполнить «Добавить наблюдение», чтобы вы могли увидеть его текущее значение в окне «Просмотр». Однако, опять же, объект должен быть создан и находится в области видимости для отображения действительного значения. Это гораздо менее мощно и более ограниченно, чем использование Immediate Window.

Наряду с методами проверки можно выполнять простые математические уравнения:

? 5 * 6
30

или сравнить значения:

? 5==6
false
? 6==6
true

Знак вопроса ('?') Не нужен, если вы находитесь непосредственно в «Немедленном окне», но он включен здесь для ясности (чтобы различать введенные выражения и результаты). Однако, если вы находитесь в Команде Окно и нужно сделать что-то быстрое в Immediate Window, а затем предшествовать вашим заявлениям с «?» и пошли.

Intellisense работает в «Немедленном окне» , но иногда оно может быть немного противоречивым. По моему опыту, кажется, что он доступен только в режиме отладки, но не в режиме разработки, не в режиме отладки.

К сожалению, еще одним недостатком окна Immediate является то, что оно не поддерживает циклы.

10 голосов
/ 27 февраля 2017

Использование непосредственного окна для выполнения команд

Немедленное окно также можно использовать для выполнения команд. Просто введите > и команду.

enter image description here

Например, >shell cmd запустит командную оболочку (это может быть полезно, например, для проверки того, какие переменные среды были переданы в Visual Studio). >cls очистит экран.

Вот список команд, которые так часто используются, что имеют собственные псевдонимы: https://msdn.microsoft.com/en-us/library/c3a0kd3x.aspx

5 голосов
/ 22 ноября 2017

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

Чтобы отобразить немедленное окно, выберите «Отладка»> «Windows»> «Немедленное» или нажмите Ctrl-Alt-I

enter image description here

Вот пример с Immediate Window:

int Sum(int x, int y) { return (x + y);}
void main(){
int a, b, c;
a = 5;
b = 7;
c = Sum(a, b);
char temp = getchar();}

добавить точку останова

enter image description here

вызов команд

enter image description here

https://msdn.microsoft.com/en-us/library/f177hahy.aspx

0 голосов
/ 27 апреля 2009

Я использую его меньше, чем в прошлом. Иногда полезно изменить значение переменной или проверить объекты. Это можно сделать и через окно наблюдения, поэтому я склонен использовать это чаще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...