Ошибка CS0103: имя «DebugDisplayString» не существует в текущем контексте - PullRequest
0 голосов
/ 26 июня 2018

Во время отладки в программе Monogame я заметил некоторые странные поведения в моем коде.

Всякий раз, когда я зависал над точкой XNA, я получал следующую ошибку вместо того, чтобы видеть значение точки XNA.

ошибка CS0103: имя 'DebugDisplayString' не существует в текущем контексте

Visual Debug

Я напечатал значение точки с помощью ToString (), и в результате получилось пустое AKA "".

Вот мой тест, который я показал на скриншоте:

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

Это начало происходить недавно. Есть идеи?

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

Это происходит, когда вы ссылаетесь на версию MonoGame для PCL.

Причина в том, что PCL использует технику приманки и переключателя , поэтому библиотека DLL фактически не содержит реализацию.

0 голосов
/ 26 июня 2018

Класс Point использует атрибут DebuggerDisplay и реализует свойство для предоставления строкового представления в соответствии с рекомендациями здесь .

Из источника MonoGame.Framework :

/// <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()
        );
    }
}

Похоже, что-то случается так часто, когда компилятор не может правильно работать с этим атрибутом.

Попробуйте очистить ваш раствор и восстановить. Исправлена ​​ошибка для других .

...