取以下函数:
DataTable go() {
return someTableAdapter.getSomeData();
}
当我在这个函数中设置断点时,是否有可能检查返回值?Go()直接耦合到.aspx页面中的数据网格。
检查返回数据表的唯一方法是使用临时变量。然而,这有点不方便。没有别的办法了吗?
取以下函数:
DataTable go() {
return someTableAdapter.getSomeData();
}
当我在这个函数中设置断点时,是否有可能检查返回值?Go()直接耦合到.aspx页面中的数据网格。
检查返回数据表的唯一方法是使用临时变量。然而,这有点不方便。没有别的办法了吗?
当前回答
我认为您可以通过查看寄存器窗口(调试/ Windows /寄存器)中的RAX寄存器来确定这一点。退出函数(SHIFT + F11)后,检查RAX寄存器。我不知道事实,但你可以检查一个寄存器(在。net时代之前)并看到那里的返回值。它甚至可能是RAX和RBX的组合,等等。
其他回答
我想在Visual Studio 2015中扩展PascalK的答案,因为有一个隐藏的特性没有在检查方法调用的返回值中记录。
如果有嵌套函数调用,则会自动创建伪变量$ResultValueX,其中X指的是函数调用顺序。因此,如果你有一个像Multiply(Five(), Six())这样的调用,则会创建以下伪变量:
Five() | $ResultValue1 = 5
Six() | $ResultValue2 = 6
Multiply() | $ResultValue3 = 30
将返回表达式拖放到观察窗口中。
例如,在语句中
return someTableAdapter.getSomeData();
拖放
someTableAdapter.getSomeData()
进入一个观察窗口,你会看到数值。
你可以对任何表达式这样做。
我同意这是一件非常有用的事情:不仅可以在退出方法之前看到它的返回值,而且还可以看到我刚刚跳过的方法的返回值。我把它作为Visual Studio商业扩展“OzCode”的一部分来实现。
有了它,你可以直接在代码编辑器中查看方法的返回值,就像一种hud显示:
要了解更多信息,请观看这个视频。
关于Visual Studio 2015:
根据Marc Gravell目前公认的答案:
此功能已添加到Visual Studio 2013。你可以看到回报 值在自动窗口或使用$ReturnValue在手表/立即 窗口
该回答还指出,该功能在Visual Studio 2015中无法工作。这并不(完全)正确。在检查方法调用的返回值时,有以下注意事项:
必须打开遗留表达式求值器才能识别$ReturnValue(工具/选项/调试/使用遗留c#和VB表达式求值器)。否则,您可以使用$ReturnValue1。
我在Visual Studio 2015 Enterprise中进行了测试:
关闭遗留表达式求值器:只有$ReturnValue1有效 打开遗留表达式求值器:$ReturnValue和$ReturnValue1都可以工作
使用Shift-F11走出go()方法,然后在“Autos”调试窗口中,它将显示方法调用的返回值,该方法调用刚刚弹出堆栈(在这种情况下,go()方法是你想要的)。这是Visual Studio 2005中的行为;我还没有使用Visual Studio 2008,所以我不知道这个行为是否在那个版本相同。