.NET Framework Object.ToString()虚拟方法

示例

.NET中的所有内容都是一个对象,因此每种类型都有ToString()在Object类中定义的方法,可以重写该方法。此方法的默认实现只是返回类型的名称:

public class Foo
{
}

var foo = new Foo();
Console.WriteLine(foo); // 输出Foo

ToString() 用字符串隐含值时隐式调用:

public class Foo
{
    public override string ToString()
    {
        return "I am Foo";
    }
}

var foo = new Foo();
Console.WriteLine("我是酒吧 "+foo);// outputs 我是酒吧 I am Foo

该方法的结果也被调试工具广泛使用。如果出于某种原因,您不想覆盖此方法,而是想要自定义调试器如何显示类型的值,请使用DebuggerDisplay Attribute(MSDN):

// [DebuggerDisplay("Person = FN {FirstName}, LN {LastName}")]
[DebuggerDisplay("Person = FN {"+nameof(Person.FirstName)+"}, LN {"+nameof(Person.LastName)+"}")]
public class Person
{
    public string FirstName { get; set; }
    public string LastName { get; set;}
    // ...
}