Практическое руководство. Переопределение метода ToString (руководство по программированию на C#)
Каждый класс или структура в языке C# неявно наследует класс Object. Поэтому каждый объект в языке C# получает метод ToString, который возвращает строковое представление данного объекта. Например, все переменные типа int
имеют метод ToString
, который позволяет им возвращать их содержимое в виде строки:
int x = 42;
string strx = x.ToString();
Console.WriteLine(strx);
// Output:
// 42
При создании пользовательского класса или структуры необходимо переопределить метод ToString, чтобы передать информацию о типе клиентскому коду.
Дополнительные сведения об использовании строк форматирования и других типов пользовательского форматирования с методом ToString
см. в разделе Типы форматирования.
Внимание
При принятии решения относительно того, какая информация должна будет предоставляться посредством этого метода, подумайте, будет ли создаваемый класс или структура когда-либо использоваться ненадежным кодом. Постарайтесь не предоставлять информацию, которая может быть использована вредоносным кодом.
Чтобы переопределить метод ToString
в классе или структуре, выполните указанные ниже действия.
Объявите метод
ToString
со следующими модификаторами и типом возвращаемого значения:public override string ToString(){}
Реализуйте этот метод таким образом, чтобы он возвращал строку.
В приведенном ниже примере возвращается не только имя класса, но и специфические данные для конкретного экземпляра класса.
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