C# 调试返回值
我记得在Visual Studio 6.0中调试C++代码时,我可以看到方法的返回值。 现在,我在VisualStudio2010中的C#中缺少该功能。C# 调试返回值,c#,visual-studio,visual-studio-2010,debugging,C#,Visual Studio,Visual Studio 2010,Debugging,我记得在Visual Studio 6.0中调试C++代码时,我可以看到方法的返回值。 现在,我在VisualStudio2010中的C#中缺少该功能。 我在哪里可以看到返回值,或者有没有理由不显示它 编辑1: 例如: string GetFullName() { return GetFirstName() + " " + GetLastName(); } 当我从以return开头的行开始单步执行(调试器)到下一行时,我希望在调试变量窗口中看到全名。请参见:(您可以向上投票) 还有一个家伙
我在哪里可以看到返回值,或者有没有理由不显示它 编辑1: 例如:
string GetFullName()
{
return GetFirstName() + " " + GetLastName();
}
当我从以return开头的行开始单步执行(调试器)到下一行时,我希望在调试变量窗口中看到全名。请参见:(您可以向上投票)
还有一个家伙的评论,他为VS开发了一个插件来支持这一点
Upd。尝试了那个插件。现在看起来不错。您看不到返回值。请参阅类似的相关问题 您可以将结果存储到字符串变量中,以便它将在调试窗口中列出
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;
}
}
可以使用该方法在return语句的行上设置断点。然后右键单击断点并选择“命中时…”。在这里,您可以选择显示消息或运行宏。为此,我们将打印一条消息,该消息将显示在输出窗口中。例如,如果您有以下代码:
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语句上,并执行与前面相同的操作。消息正文现在如下所示:
全名为:{GetFirst()+“”+GetLast()}
输出窗口将显示:
全名是:“比尔·盖茨”
这是在Visual Studio 2013中添加的: 返回值将显示在“自动窗口”(调试->窗口->自动)中,您还可以在监视和/或即时窗口中使用伪变量“$ReturnValue”获取最后一个函数的返回值
调试代码时,在计算返回值时,只需执行以下操作之一: 1-在即时窗口中键入$ReturnValue 2-手表窗口中的手表$ReturnValue
您可以在“监视”窗口中调用该方法,并在那里查看其返回值。这就是你的意思吗?@ C++中的SHAO号我可以跳出一个方法,返回值自动地在调试变量窗口中列出。在这种情况下,我担心它无法实现。附加变量只是经常调试的方法的一个选项。我刚刚在本页右侧的相关列表中找到另一个相关问题:。这样看来,输入问题时的搜索不如相关列表好。我猜提问搜索不关心标签字段。谢谢。这个解决方案是否比在监视窗口中编写调用更好?我想进入“在监视中调用”窗口会更快。监视的问题是您必须设置断点,并且在调试时选择方法并选择“添加监视”。不能右键单击方法调用并选择“添加监视”,因为这会导致监视值出错。我的解决方案的“设置”需要更长的时间,但在调试时,您没有更多的顾虑。我刚才给出了一个解决方案,可以根据您的要求立即查看方法调用的返回值…:)非常感谢。我将尝试这个插件。我尝试了BugAid插件,它可以工作。要使用返回视图功能,需要将其设置为完全模式。这是一个测试版,该版本仅对开源项目和MVP免费。我刚刚在BigAid主页()上看到,尽管只是测试版,但Commercial许可证不是免费的。所以我不得不卸载它,因为我找不到任何关于商业用户试用版的提示。你已经从官方网站下载并安装了该应用程序。我不认为你做了任何违法的事情,除非你下载了一些非官方的版本。@brgerner嗨,伙计们,我是BugAid的共同创建者。BugAid有60天的免费试用期,您可以将其免费用于任何目的(商业或其他)。我希望你会发现它有用!很抱歉造成混淆-我们将在网站上尽量澄清,这是一个完全免费的60天试用期。您介意在回答中描述解决方案吗?这将避免导航出SO,并在链接终止时提供静态副本。您可以使用
$exception
变量对异常执行相同操作。比如它们在命名和大小写上的一致性。干得好。