Как использовать окно Immediate в Visual Studio?

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

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

Ответ 1

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

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

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

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

? GetSum(2, 4)
6

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

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

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

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

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

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

? 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" 

Очень распространенный способ увидеть значение метода - выбрать имя метода для класса и сделать "Add Watch", чтобы вы могли видеть его текущее значение в окне "Смотреть". Тем не менее, еще раз, объект должен быть создан и доступен для видимого значения. Это гораздо менее мощное и более ограничительное, чем использование окна "Немедленное".

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

? 5 * 6
30

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

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

Вопросительный знак ('?') не нужен, если вы находитесь непосредственно в окне Immediate, но он включен здесь для ясности (чтобы различать типизированные выражения в сравнении с результатами). Однако, если вы находитесь в команде Окно и нужно сделать некоторые быстрые вещи в окне "Немедленное окно", а затем перед вашими заявлениями "?" и вы уходите.

Intellisense работает в окне Immediate Window, но иногда это может быть немного непоследовательным. По моему опыту, он, кажется, доступен только в режиме отладки, но не в режиме проектирования, не отладки.

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

Ответ 2

Используйте окно "Немедленное" для выполнения команд

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

введите описание изображения здесь

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

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

Ответ 3

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

Чтобы отобразить окно Immediate, выберите Debug > Windows > Immediate или нажмите Ctrl-Alt-I

введите описание изображения здесь

Вот пример с 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();}

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

введите описание изображения здесь

команды вызова

введите описание изображения здесь

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

Ответ 4

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