如何调试在c#中没有存储为局部变量的返回值

时间:2018-01-16 18:56:33

标签: c# visual-studio visual-studio-2017

我经常发现需要调试这种类型的代码:

function DoSomething(int parm1)
{
     return  SomeClass.SomeMethod(parm1);
}

换句话说,我需要查看SomeClass.SomeMethod(parm1);

的返回值

我目前知道的唯一方法是重写这样的代码:

function DoSomething(int parm1)
{
     var returnValue = SomeClass.SomeMethod(parm1);
     return returnValue;
}

然后我可以在第二行放置一个断点并检查returnValue的值。

有没有办法在不重写代码的情况下检查这个值?

4 个答案:

答案 0 :(得分:1)

单击该部分上的Shift + F9或Ctrl + Alt + Q,它将打开Debug.QuickWatch。

答案 1 :(得分:1)

转到“快速查看”窗口

  

您可以使用Watch(Debug / Windows / Watch / Watch(1,2,3,4))和QuickWatch (右键单击变量/ Debug / QuickWatch )窗口来监视变量和调试会话期间的表达式。区别在于Watch窗口可以显示多个变量,而 QuickWatch 窗口一次显示一个变量。

来源:Watch and QuickWatch Windows

答案 2 :(得分:1)

常规监视窗口还将显示函数返回值(因此您必须执行您感兴趣的任何语句,甚至可能退出该函数)。这些未命名的表达式位于监视窗口列表的开头。我的键映射下的击键是alt + 4,你也可以通过Debug-> Windows-> Watch ...到达那里...

答案 3 :(得分:1)

您可以使用 Autos 调试窗口(Ctrl + D,A)。它将显示被调用函数的结果。查看图片 - > 'ConsoleApp2.Program.Return returns'是函数的结果。

enter image description here

注意:这将在您退出该功能后显示结果。所以不完全是你需要的东西,但它在链式调用中很有用,其中有几个函数以这种方式调用。