Как просмотреть результат при отладке? [Дубликат]

Раньше я использовал инструмент с открытым исходным кодом, названный HTMLParser . Он разработан, чтобы анализировать HTML по-разному и хорошо служит цели. Он может анализировать HTML как другой treenode, и вы можете легко использовать его API для получения атрибутов из узла. Проверьте это и посмотрите, поможет ли это вам.

106
задан CJBS 27 February 2017 в 20:05
поделиться

4 ответа

Одной из приятных особенностей 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";
    }
}

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

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

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

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

? 5 * 6
30

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

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

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

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

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

119
ответ дан Community 16 August 2018 в 04:31
поделиться

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

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

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

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

9
ответ дан CJBS 16 August 2018 в 04:31
поделиться
  • 1
    хороший отзыв. Фактически, это прекрасно сочетается с другим трюком, который я использую: >open Filename откроет выбранный файл в решении и даже выполнит его. – Phillip Ngan 28 February 2017 в 20:24

Окно 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

3
ответ дан Isma Rekathakusuma 16 August 2018 в 04:31
поделиться

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

-3
ответ дан user 16 August 2018 в 04:31
поделиться
  • 1
    Это не очень хороший ответ. Вопрос был «Как вы используете непосредственное окно? & Quot; , а не как вы относитесь к нему или как часто вы его используете. – jww 7 December 2016 в 10:57
Другие вопросы по тегам:

Похожие вопросы: