【问题标题】:$ReturnValue in Watch window doesn't work in VS2015监视窗口中的 $ReturnValue 在 VS2015 中不起作用
【发布时间】:2016-04-23 20:12:04
【问题描述】:

在 VS2013 中,我们可以通过检查名为 $ReturnValue 的 Watch 窗口条目来查看方法的返回值。这似乎在 VS2015 中不起作用。

例如我制作了一个新的控制台应用程序,包含以下代码:

using System;

namespace ReturnInspector
{
    public class Program
    {
        public static void Main(string[] args)
        {
            Console.WriteLine("Number: {0}", Method1());
        }

        public static int Method1()
        {
            return Method2(1000);          //A
        }                                  //B

        private static int Method2(int i)
        {
            return i + 42;
        }
    }
}

如果我在//A 行设置断点,那么一旦断点,F10 进入//B 行,监视窗口中的$ReturnValue 项在 VS2013 中显示“1042”,但在 VS2015 中显示此:

error CS0103: The name '$ReturnValue' does not exist in the current context

请注意,Autos 和 Locals 窗口正确地说明了这一点:

ReturnInspector.Program.Method2 returned    1042

有谁知道在 VS2015 中监视窗口功能中的$ReturnValue 是否已被删除?

【问题讨论】:

    标签: c# visual-studio-2015 watch


    【解决方案1】:

    确保您在 工具 >> 选项 >> 调试 >> 使用旧版 C# 和 VB 表达式评估器 选项中选中。

    来自MSDN

    您必须启用旧版表达式求值器才能识别 $ReturnValue(工具/选项/调试/使用旧版 C# 和 VB 表达式求值器)。否则,您可以使用 $ReturnValue1。

    【讨论】:

    • 单双>有什么区别? @PatrickHofman
    • 您在另一个块引用中创建了一个块引用。这有时会出现布局问题,而且看起来很糟糕。
    • 为什么默认不推荐/不启用?
    • “使用旧的 C# 和 VB 表达式评估器”选项在我的 VS 2017 上是灰色的,无法激活它。有什么想法吗?
    • @CageE 在更改选项之前停止调试会话
    【解决方案2】:

    在 VS2019 社区中,它与 $ReturnValue1 一起使用

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-18
    • 2015-07-20
    • 1970-01-01
    • 2012-01-14
    • 2016-05-06
    相关资源
    最近更新 更多