取以下函数:
DataTable go() {
return someTableAdapter.getSomeData();
}
当我在这个函数中设置断点时,是否有可能检查返回值?Go()直接耦合到.aspx页面中的数据网格。
检查返回数据表的唯一方法是使用临时变量。然而,这有点不方便。没有别的办法了吗?
取以下函数:
DataTable go() {
return someTableAdapter.getSomeData();
}
当我在这个函数中设置断点时,是否有可能检查返回值?Go()直接耦合到.aspx页面中的数据网格。
检查返回数据表的唯一方法是使用临时变量。然而,这有点不方便。没有别的办法了吗?
当前回答
关于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,所以我不知道这个行为是否在那个版本相同。
进入“工具→选项”、“IntelliTrace”菜单,修改设置,收集事件和呼叫信息。
您可以返回到前面的调用事件(Ctrl + Shift + F11),并在autos窗口中看到方法调用返回的临时值作为方法名的子值。
这并没有显示您所在方法的返回值。它只显示当前方法中调用的最后一个方法的返回值。
所以,对于
DataTable go(){return someTableAdapter.getSomeData();}
因为它会显示someTableAdapter.getSomeData()的返回值。
但不是为了:
int go(){return 100 * 99;}
接受的答案在Visual Studio 2015中不能正常工作,但是通过在方法的最后一行上放置断点并按F10,它将把返回值的所有表达式放入locals窗口。
是的,有一个很好的方法。一个显著的缺点是你必须等待5年,也许6年。自从我看到你在2008年11月发的帖子,我建议你waaaaaa…
……aaaait。瞧!只是为了你,微软发布了最新的Visual Studio 2013,它是在调试模式下运行时从菜单中访问的默认功能(菜单debug→Windows→Autos)。
您可以尝试选择“someTableAdapter.getSomeData();”,右键单击它,然后选择快速观察。