Практическое руководство. Переопределение метода 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
    

См. также