我有一行像这样的代码
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?
答案 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。