Проверьте возвращаемое значение, не назначая его переменной - PullRequest
9 голосов
/ 17 января 2012

У меня есть следующий код:

...
var tpc = new ThirtPartyClass();

tpc.ExecuteCommand();
tpc.ExecuteCommand();
...

Метод ExecuteCommand () возвращает значение типа int с некоторой информацией. Для отладки я хочу знать это возвращаемые значения. Но я не хочу присваивать результат переменной (var result = tpc.ExecuteCommand ()).

Есть ли в VisualStudio 2010 возможность во время отладки проверить это возвращаемое значение, не назначая его во временную переменную?

Заранее спасибо за ваши предложения

edit: Наконец, эта функция была добавлена ​​к VS2013

Ответы [ 3 ]

8 голосов
/ 17 января 2012

Вы можете сделать это с IntelliTrace в VS2010, переключившись на «Просмотр вызовов», затем проверив окно Autos:

enter image description here

Но даже без этого не беспокойтесьоб этом;если вы не используете переменную (за исключением того, что смотрите в отладчике, когда она приостановлена), то в сборке релиза она будет удалена и заменена просто «pop» (это то, что вы получите, если не поймаете возвратзначение в первую очередь).

Итак:

static void Main()
{
    int i = SomeMethod();
}

Компилируется как:

.method private hidebysig static void Main() cil managed
{
    .entrypoint
    .maxstack 8
    L_0000: call int32 Program::SomeMethod()
    L_0005: pop 
    L_0006: ret 
}

примечание № .locals и нет stloc.

Для Resharper используйте:

// ReSharper disable UnusedVariable
    int i = SomeMethod();
// ReSharper restore UnusedVariable
2 голосов
/ 17 января 2012

AFAICT, если вы используете BugAid , он может отображать возвращаемые значения, как показано на рисунке здесь:

Return value

1 голос
/ 17 января 2012

Вы можете использовать часы или использовать непосредственное окно во время отладки. Вы можете скопировать код в непосредственное окно, чтобы запустить его во время отладки, чтобы увидеть, что он возвращает. Однако он снова выполнит код, чтобы получить возвращаемое значение.

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