检查返回值而不将其赋值给变量

时间:2012-01-17 11:30:57

标签: c# visual-studio-2010 debugging

我有以下代码剪切:

...
var tpc = new ThirtPartyClass();

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

ExecuteCommand()方法返回带有一些信息的int值。 对于调试,我想知道这个返回值。但我不想将结果赋给变量(var result = tpc.ExecuteCommand())。

VisualStudio 2010中是否有可能在调试期间检查此返回值而不将其分配给临时变量?

提前感谢您的建议

编辑:最后,此功能已添加到VS2013

3 个答案:

答案 0 :(得分:8)

您可以使用VS2010中的IntelliTrace,切换到“调用视图”然后检查“自动”窗口:

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

答案 1 :(得分:2)

AFAICT,如果你使用BugAid,它可以显示返回值,如图所示:

Return value

答案 2 :(得分:1)

您可以在调试期间使用手表或使用即时窗口。您可以将代码复制到即时窗口以在调试期间运行它以查看它返回的内容。然而,它将再次执行代码以获得返回值。