Практическое руководство. Переопределение метода ToString (Руководство по программированию на C#)

Каждый класс или структура в C# неявно наследует классу Object. Поэтому каждый объект в языке C# получает метод ToString, который возвращает строковое представление данного объекта. Например, все переменные типа int имеют метод ToString, который позволяет им возвращать содержимое этой переменной в виде строки:

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

При создании пользовательского класса или структуры необходимо переопределить метод ToString, чтобы передать информацию о типе клиентскому коду.

Дополнительные сведения об использовании строк форматирования и другие типы пользовательского форматирования с методом ToString см. в разделе Типы форматирования в .NET Framework.

Примечание о безопасностиПримечание по безопасности

При принятии решения относительно того, какая информация должна будет предоставляться посредством этого метода, подумайте, будет ли создаваемый класс или структура когда-либо использоваться ненадежным кодом.Постарайтесь не предоставлять информацию, которая может быть использована вредоносным кодом.

Переопределение метода 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
    

См. также

Ссылки

Классы и структуры (Руководство по программированию в C#)

string (Справочник по C#)

new (справочник по C#)

override (Справочник по C#)

virtual (Справочник по C#)

IFormattable

Основные понятия

Руководство по программированию на C#

Другие ресурсы

Строки (Руководство по программированию на C#)

Типы форматирования в .NET Framework