在使用Visual Studio进行调试时,我能否在返回之前找到返回值?

451

考虑以下函数:

DataTable go() {
    return someTableAdapter.getSomeData();
}
当我在这个函数中设置一个断点时,有没有可能检查返回值?go()直接与.aspx页面中的datagrid相耦合。检查返回的datatable的唯一方法是使用临时变量。不过,那有点不方便。还有其他方法吗?

2
如果你回到调用堆栈的上方,你可以添加一个监视器。 - Chris S
5
针对Visual C++用户的注释:在“立即窗口”或“监视窗口”中输入$ReturnValue。至少在我的VS 2010上有效! - sergiol
11
如果您不想阅读下面的20个答案和100条评论,请使用$ReturnValue1来使用VS2015! - felickz
7
这个问题的2019年答案是什么?这些回答已经过时了。 - dylanh724
@dylanh724 在Visual Studio 2019中,你需要在方法/函数结束后立即检查Immediate Window中的$ReturnValue(只需执行即可)。它也适用于Watch窗口。 - Marcin
显示剩余3条评论
21个回答

0

将返回表达式拖放到监视窗口中。

例如,在语句中:

return someTableAdapter.getSomeData();

拖放

someTableAdapter.getSomeData()

将表达式输入到监视窗口中,您就可以看到其值。
您可以对任何表达式执行此操作。

3
问题在于:该表达式被评估了两次。 - doekman
8
监视表达式不能包含 lambda 表达式,而我经常使用 lambda 表达式。 - Steve Crane

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接