取以下函数:

DataTable go() {
    return someTableAdapter.getSomeData();
}

当我在这个函数中设置断点时,是否有可能检查返回值?Go()直接耦合到.aspx页面中的数据网格。

检查返回数据表的唯一方法是使用临时变量。然而,这有点不方便。没有别的办法了吗?


当前回答

我想在Visual Studio 2015中扩展PascalK的答案,因为有一个隐藏的特性没有在检查方法调用的返回值中记录。

如果有嵌套函数调用,则会自动创建伪变量$ResultValueX,其中X指的是函数调用顺序。因此,如果你有一个像Multiply(Five(), Six())这样的调用,则会创建以下伪变量:

Five()     | $ResultValue1 = 5
Six()      | $ResultValue2 = 6
Multiply() | $ResultValue3 = 30

其他回答

我想在Visual Studio 2015中扩展PascalK的答案,因为有一个隐藏的特性没有在检查方法调用的返回值中记录。

如果有嵌套函数调用,则会自动创建伪变量$ResultValueX,其中X指的是函数调用顺序。因此,如果你有一个像Multiply(Five(), Six())这样的调用,则会创建以下伪变量:

Five()     | $ResultValue1 = 5
Six()      | $ResultValue2 = 6
Multiply() | $ResultValue3 = 30

如果中间窗口没有设置标志或其他变量,而只是返回一些东西,您也可以要求在中间窗口中计算值。

使用Shift-F11走出go()方法,然后在“Autos”调试窗口中,它将显示方法调用的返回值,该方法调用刚刚弹出堆栈(在这种情况下,go()方法是你想要的)。这是Visual Studio 2005中的行为;我还没有使用Visual Studio 2008,所以我不知道这个行为是否在那个版本相同。

在VS2019中,只需打开调试->Windows->汽车窗口。在那里,你看到concat返回值如下所示:

微软Visual c++曾经这样做,但Visual Studio不AFAIK..:(