我有一个可能包含许多字段的类,但为了在调试器中识别它,我只对其Name
属性感兴趣。有没有办法在Visual Studio中调试时在手表中显示其名称,而不是修改Autoexp.dat?
Visual Studio是否可能正在寻找某些字段/函数来派生类似于Eclipse在Java中的表达方式(它使用toString()
方法的结果作为调试器中的表示)?
答案 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
对于空引用是安全的)