【发布时间】:2019-03-06 12:55:36
【问题描述】:
我正在尝试使用断点操作输出方法返回的值。该方法包含多个不相同的返回语句,类似于此示例:
double Foo(int bar, int baz)
{
if (bar < 0)
return Math.Sqrt((double)(baz - bar) * (baz - bar));
if (bar % baz == 0)
{
if (baz == 3)
{
return bar / 2 * baz;
}
else
{
return Math.Pow(bar, baz);
}
}
return Math.Log(baz, bar);
}
我正在寻找一种输出返回值的方法,而无需重构该方法以便将值存储在变量中,或者在每个返回语句上放置一个断点并且必须为每个语句编写单独的操作。
this question 接受的答案表明,可以在离开方法之前在即时窗口中使用 $ReturnValue 关键字检查返回值。
下图说明了我想要完成的事情。
这当然行不通,然后打印:
Foo("1", false) 的调试结果 = 错误 CS0103:当前上下文中不存在名称“$ReturnValue”。
虽然有几个可用的关键字,例如 $CALLER 或 $TNAME,但我还没有找到任何可以产生返回值的关键字。
是否可以在单个断点操作中打印返回值?
【问题讨论】:
-
@SeM 在输出窗口中输出它们
-
为什么不在调用部分使用
Debug.Print(yourMethodReturnValue)? -
只有有限的关键字列表(如 $FUNCTION)可以通过断点返回,并且 $ReturnValue 不是一个,您的错误消息来自这里。为了输出函数的返回值,我会在返回值之前使用一个简单的 Console.WriteLine()。
标签: c# .net visual-studio debugging