Смотрите возвращаемое значение в C # - PullRequest
6 голосов
/ 30 апреля 2010

Рассмотрим следующий фрагмент кода: мой код http://i44.tinypic.com/28hhdw4.jpg

Как вы можете видеть, мы находимся в строке 28. Есть ли способ увидеть возвращаемое значение функции в этой точке, не позволяя коду вернуться к функции вызывающей стороны?

Foo.Bar() - это вызов функции, который генерирует уникальный путь (например). Так что это НЕ ПОСТОЯННО.

Ввод? Foo.Bar () в окне непосредственного взаимодействия также не работает, так как это переоценивает код:

?Foo.Bar()
"80857466"
?Foo.Bar()
"2146375101"
?Foo.Bar()
"1106609407"
?Foo.Bar()
"792759112"

В VB.NET это возможно, введя имя функции в Watch, которое затем будет угрожать ей как переменной.

Но в C # это невозможно, есть еще советы?

PS: перезапись невозможна.

Ответы [ 2 ]

3 голосов
/ 30 апреля 2010

Ответ найден здесь: VS получить возвращаемое значение в коде C #?

Это действительно видно. Отладка + Другое Windows + Регистры. Посмотрите на стоимость EAX (RAX в x64). Значение простые целочисленные типы возвращаются в регистр EAX. Долго в EDX: EAX. Плавающая точка в STx (XMM00 в x64).

2 голосов
/ 30 апреля 2010

Если вы используете Visual Studio, вы можете использовать Немедленное окно . Если вы введете Foo.Bar (); в окне Immediate вы получите результат, который вам нужен, если вы не хотите, чтобы он переоценивал, вставьте точку останова в соответствующем точечном IE либо до его первой оценки, либо в самом Foo.Bar ().

...