在Visual Studio中检查方法的返回行上的函数的返回值

时间:2012-07-10 14:43:05

标签: c# visual-studio debugging visual-studio-2012

我有一行像这样的代码

return foo(barIn);

如果我在行上放置一个断点,我可以检查foo(barIn)的返回值而不进入foo吗?我可以将代码重写为

var result = foo(barIn);
return result;

但我希望不会重写并且不会退出当前代码。

==========编辑==========

这四个初步答案很有意思(谢谢),但实际上并没有回答我的问题。让我试着更清楚。

在这个方法中

public string functionA()
{
    return functionB();
}

在Visual Studio 2012中是否有一种方法可以在“return functionB();”行上放置一个断点并检查functionB的返回值,而不是单步执行functionB,重新运行functionB,或重写函数A?

4 个答案:

答案 0 :(得分:1)

不,你无法满足这种确切的行为。见Can I find out the return value before returning while debugging in Visual Studio。你能得到的最接近的是:

如果foo是幂等的(即它没有任何副作用),那么您可以将监视添加到foo(barIn)

如果 有副作用,那么将断点放在return上,然后逐步退出( Shift + F11 <函数的/ kbd>默认情况下)并检查赋值函数的变量。

答案 1 :(得分:0)

您可以随时使用F11进入该功能,然后使用F10查看该功能并查看其返回的内容。

答案 2 :(得分:0)

您可以添加foo(barIn)的手表或快速手表来查看结果。只需突出显示并右键单击即可。调试时,上下文菜单中有选项。如果两次运行该方法会导致不必要的影响,请注意一次。

答案 3 :(得分:0)

如果你在那里写foo(barIn),你可以看到监视窗口中的返回值,但这会导致你的foo方法被调用两次,有时它不是你想要发生的,所以得到的值是一个变量并返回它是最好的方法。如果你有代码,你总是可以进入foo。