调试返回值

时间:2012-02-21 10:04:07

标签: c# visual-studio visual-studio-2010 debugging

我记得当我在Visual Studio 6.0中调试 C ++ 代码时,我可以看到方法的返回值。 现在,我在Visual Studio 2010中的 C#中缺少该功能 我在哪里可以看到返回值,或者有没有显示它的原因?

EDIT1: 一个例子:

string GetFullName()
{
  return GetFirstName() + " " + GetLastName();
}

当我从 return 开始的行步骤(调试器)到下一行时,我希望在调试变量窗口中看到全名。

5 个答案:

答案 0 :(得分:8)

这是在Visual Studio 2013中添加的:

返回值显示在“Autos Windows”(Debug-> Windows-> Autos)中,您还可以使用Watch和/或Immediate窗口中的伪变量“$ ReturnValue”来获取最后一个函数的返回值。

http://blogs.msdn.com/b/visualstudioalm/archive/2013/06/27/seeing-function-return-values-in-the-debugger-in-visual-studio-2013.aspx

答案 1 :(得分:3)

请参阅:https://connect.microsoft.com/VisualStudio/feedback/details/555859/see-return-value-in-managed-code(您可以对其进行投票)

另外还有一个人为VS开发了一个插件来支持它。

UPD。试过那个插件。现在看起来很棒。

答案 2 :(得分:3)

您可以使用该方法在return语句的行上设置断点。然后右键单击断点并选择“When Hit ...”。在这里,您可以选择显示消息或运行宏。为此,我们将打印一条将在输出窗口中显示的消息。例如,如果您有以下代码:

public double ReturnValue()
{
    var x = 3;
    var y = 4;
    //x and y can of course be non-constant vars too
    return Calculate(x, y);
}

public static double Calculate(int x, int y)
{
    return x * x + y * y;
}

如果在“return Calculate(x,y);”行上设置断点,请右键单击它并选择“When Hit ...”并选择此作为消息:

  

值为:{Calculate(x,y)}

在这种情况下,输出窗口将显示:

  

值为:25.0

希望这有帮助!

<强>更新

这也适用于名称,方法的示例:

public string GetFirst()
{
    return "Bill";
}

public string GetLast()
{
    return "Gates";
}

public string GetFull()
{
    return GetFirst() + " " + GetLast();
}

将断点放在GetFull()方法的return语句中,并执行与以前相同的操作。消息体现在看起来像这样:

  

Fullname是:{GetFirst()+“”+ GetLast()}

输出窗口将显示:

  

全名是:“比尔盖茨”

答案 3 :(得分:1)

您无法看到返回值,请参阅类似的相关问题

Can I find out the return value before returning while debugging in Visual Studio

您可以将结果存储到字符串变量中,以便在调试窗口中列出。

enter image description here

class Program
    {
        static void Main(string[] args)
        {
            Program p = new Program();
            Console.WriteLine(p.GetFullName());
            Console.ReadLine();   
        }

        string GetFullName()
        {
            string result =GetFirstName() + " " + GetLastName();
            return result;
        }

        string GetFirstName()
        {
            string firstname = "vishwanath";
            return firstname;
        }

        string GetLastName()
        {
            string lastname = "Dalvi";
            return lastname;
        }
    }

答案 4 :(得分:0)

仅在调试代码时,在评估返回值时,请执行以下操作之一:

1-在立即窗口中输入$ ReturnValue

2-在观看窗口中观看$ ReturnValue

enter image description here