Visual Studio C # смотреть представление переменных - PullRequest
0 голосов
/ 04 мая 2018

У меня есть класс, который может иметь много полей, но для его идентификации в отладчике меня интересует только его свойство Name. Есть ли способ отобразить его имя в часах при отладке в Visual Studio, кроме изменения Autoexp.dat?

Может ли Visual Studio искать определенные поля / функции для получения строкового представления, аналогичного тому, как это делает Eclipse в Java (он использует результат метода toString() в качестве представления в отладчике)?

Ответы [ 2 ]

0 голосов
/ 04 мая 2018

Хороший способ сделать это - использовать атрибут DebuggerDisplay:

[DebuggerDisplay("Name = {Name}")]
class Data {
    public string Name { get; set; }
}

Теперь ваши часы будут отображать Name = valueOfName для экземпляра данного класса. В целом это лучше, чем переопределение ToString (что также работает), потому что переопределение ToString влияет не только на отладку дисплея, и вы, возможно, не захотите делать это только для целей отладки.

0 голосов
/ 04 мая 2018

.NET использует результат ToString для отображения значения переменной, когда оно равно object. Так что просто переопределение ToString сделает:

public override string ToString() => this.Name;

Если у вас нет контроля над классом, установка часов на свойство Name тоже подойдет. (Используйте theInstance?.Name, чтобы быть безопасным для нулевых ссылок)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...