Visual Studio C#监视变量表示

时间:2018-05-04 07:31:40

标签: c# visual-studio

我有一个可能包含许多字段的类,但为了在调试器中识别它,我只对其Name属性感兴趣。有没有办法在Visual Studio中调试时在手表中显示其名称,而不是修改Autoexp.dat?

Visual Studio是否可能正在寻找某些字段/函数来派生类似于Eclipse在Java中的表达方式(它使用toString()方法的结果作为调试器中的表示)?

2 个答案:

答案 0 :(得分:3)

这样做的好方法是使用DebuggerDisplay属性:

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

现在,您的手表将以给定班级为例显示Name = valueOfName。它总体上优于覆盖ToString(也可以),因为覆盖ToString不仅仅影响调试显示,而且您可能不希望仅仅为了调试目的而这样做。

答案 1 :(得分:1)

.NET使用ToString的结果在object时显示变量值。因此,简单地覆盖ToString会:

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

如果您无法控制班级,那么将手表放在Name财产上当然也会这样做。 (使用theInstance?.Name对于空引用是安全的)