错误 CS0103:名称 'DebugDisplayString' 在当前上下文中不存在

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

在通过 Monogame 程序进行调试时,我注意到我的代码中有一些奇怪的行为。

每当我将鼠标悬停在 XNA Point 上时,我都会收到以下错误,而不是看到 XNA Point 的值。

错误 CS0103:名称 'DebugDisplayString' 在当前上下文中不存在

我通过 ToString() 打印了点的值,结果是空的 AKA ""。

这是我在屏幕截图中显示的测试:

    static void Main(string[] args)
    {
        Point point = new Point(3, 1);
    }

最近开始出现这种情况。 有什么想法吗?

Point class 使用 DebuggerDisplay 属性并实现 属性 以提供建议的字符串表示 here

来自MonoGame.Framework source

/// <summary>
/// Describes a 2D-point.
/// </summary>
[DataContract]
[DebuggerDisplay("{DebugDisplayString,nq}")]
public struct Point : IEquatable<Point>
{
    /// Other code here
    internal string DebugDisplayString
    {
        get
        {
            return string.Concat(
                this.X.ToString(), "  ",
                this.Y.ToString()
        );
    }
}

编译器无法正确使用此属性似乎时常发生。

尝试清理您的解决方案并重建。它已解决 others.

的问题

当您引用 PCL 版本的 MonoGame 时会发生这种情况。

原因是 PCL 使用 bait and switch 技术,因此 DLL 实际上不包含实现。