.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;} // ... }