我记得当我在Visual Studio 6.0中调试 C ++ 代码时,我可以看到方法的返回值。 现在,我在Visual Studio 2010中的 C#中缺少该功能 我在哪里可以看到返回值,或者有没有显示它的原因?
EDIT1: 一个例子:
string GetFullName()
{
return GetFirstName() + " " + GetLastName();
}
当我从 return 开始的行步骤(调试器)到下一行时,我希望在调试变量窗口中看到全名。
答案 0 :(得分:8)
这是在Visual Studio 2013中添加的:
返回值显示在“Autos Windows”(Debug-> Windows-> Autos)中,您还可以使用Watch和/或Immediate窗口中的伪变量“$ ReturnValue”来获取最后一个函数的返回值。
答案 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
您可以将结果存储到字符串变量中,以便在调试窗口中列出。
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)