如何在调试时使用除ToString之外的委托来显示对象的值?

Dan*_*fer 9 .net c# debugging tostring

.NET/Visual Studio使用对象的ToString()方法在调试器中查看对象时显示对象的值.我想显示特定的信息,但由于.ToString()在将对象转换为字符串时经常被框架使用,我无法通过重写ToString()来实现.是否有一个属性可以用来告诉调试器使用不同的方法或属性?

Fis*_*rdo 14

使用DebuggerDisplayAttribute[MSDN].您为它提供了一个格式字符串,该字符串引用类中的字段/属性,以便在调试时显示而不必乱用ToString().

[DebuggerDisplay("Count = {count}")]
class MyHashtable
{
    public int count = 4;
}
Run Code Online (Sandbox Code Playgroud)

它也适用于方法:

[DebuggerDisplay("{ToDebugString()}")]
public class SomeClass
{
    public override String ToString()
    {
        return "Normal ToString()";
    }

    public String ToDebugString()
    {
        return "ToDebugString()";
    }
 }
Run Code Online (Sandbox Code Playgroud)