如何替代 ToString 方法(C# 编程指南)

C# 中的每个类或结构都可隐式继承 Object 类。 因此,C# 中的每个对象都会获取 ToString 方法,该方法返回该对象的字符串表示形式。 例如,类型为 int 的所有变量都有一个 ToString 方法,使它们可以将其内容作为字符串返回:

int x = 42;
string strx = x.ToString();
Console.WriteLine(strx);
// Output:
// 42

创建自定义类或结构时,应替代 ToString 方法,以向客户端代码提供有关你的类型的信息。

若要深入了解如何通过 ToString 方法使用格式字符串和其他类型的自定义格式设置,请参阅格式化类型

重要

决定通过此方法提供信息内容时,请考虑你的类或结构是否会被不受信任的代码使用。 请务必确保不提供可能被恶意代码利用的任何信息。

替代类或结构中的 ToString 方法:

  1. 声明具有下列修饰符和返回类型的 ToString 方法:

    public override string ToString(){}  
    
  2. 实现该方法,使其返回一个字符串。

    下面的示例返回类的名称,但特定于该类的特定实例的数据除外。

    class Person
    {
        public string Name { get; set; }
        public int Age { get; set; }
    
        public override string ToString()
        {
            return "Person: " + Name + " " + Age;
        }
    }
    

    可以测试 ToString 方法,如以下代码示例所示:

    Person person = new Person { Name = "John", Age = 12 };
    Console.WriteLine(person);
    // Output:
    // Person: John 12
    

另请参阅