取以下函数:
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中不能正常工作,但是通过在方法的最后一行上放置断点并按F10,它将把返回值的所有表达式放入locals窗口。
将返回表达式拖放到观察窗口中。
例如,在语句中
return someTableAdapter.getSomeData();
拖放
someTableAdapter.getSomeData()
进入一个观察窗口,你会看到数值。
你可以对任何表达式这样做。
在VS2019中,只需打开调试->Windows->汽车窗口。在那里,你看到concat返回值如下所示:
进入“工具→选项”、“IntelliTrace”菜单,修改设置,收集事件和呼叫信息。
您可以返回到前面的调用事件(Ctrl + Shift + F11),并在autos窗口中看到方法调用返回的临时值作为方法名的子值。
这并没有显示您所在方法的返回值。它只显示当前方法中调用的最后一个方法的返回值。
所以,对于
DataTable go(){return someTableAdapter.getSomeData();}
因为它会显示someTableAdapter.getSomeData()的返回值。
但不是为了:
int go(){return 100 * 99;}
根据客户反馈网站,这可以在Visual Studio 2013中使用CLR 4.5.1完成。它在以前的c#版本中不可用。
(Visual Studio 2008和更早的版本支持VB.NET。C/ c++开发人员一直可以使用它。)