3

我有这样一行代码

return foo(barIn);

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

var result = foo(barIn);
return result;

但我想要不重写也不离开当前代码的便利。

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

最初的四个答案很有趣(谢谢),但它们实际上并没有回答我的问题。让我试着更清楚一点。

在这个方法中

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

在 Visual Studio 2012 中有没有办法在“return functionB();”行上放置一个断点 并检查函数B的返回值而不进入函数B、重新运行函数B或重写函数A?

4

4 回答 4

1

不,您无法满足这种确切的行为。请参阅在 Visual Studio 中调试时返回之前是否可以找出返回值。您可以获得的最接近的是:

如果foo是幂等的(即它没有任何副作用),那么您可以在foo(barIn).

如果它确实有副作用,则将断点放在函数的return, 然后跳出(默认情况下为Shift+ F11)并检查函数结果分配给的变量。

于 2012-07-10T14:46:05.993 回答
0

您始终可以使用F11单步执行该函数,然后F10遍历该函数并查看它返回的内容。

于 2012-07-10T14:45:04.250 回答
0

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

于 2012-07-10T14:46:08.307 回答
0

如果您在监视窗口中写入 foo(barIn) ,则可以在监视窗口中看到返回值,但这会导致您的 foo 方法被调用两次,有时这不是您想要发生的,因此将值传递给变量并退货是最好的办法。如果你有代码,你总是可以进入 foo 。

于 2012-07-10T14:47:40.557 回答