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

Обновлен: Ноябрь 2007

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

int x = 42;
string strx = x.ToString();
System.Console.WriteLine(strx);

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

ms173154.alert_security(ru-ru,VS.90).gifПримечание о безопасности.

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

Порядок переопределения метода OnString в классе или структуре

  1. Объявите метод ToString со следующими модификаторами и типом возвращаемого значения:

    public override string ToString(){}
    
  2. Реализуйте этот метод таким образом, чтобы он возвращал строку.

    Приведенный ниже пример возвращает не только имя класса, но и специфические данные для конкретного экземпляра класса. Обратите внимание, что он также использует метод ToString в переменной age для преобразования типа int в строку, которая может служить выходными данными.

    class Person
    { 
      string name;
      int age;
      SampleObject(string name, int age)
      {
      this.name = name;
      this.age = age;
      }
      public override string ToString() 
      {
         string s = age.ToString();
         return "Person: " + name + " " + s;
      }
    }
    

См. также

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

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

Ссылки

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

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

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

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