Внутренний механизм ToString()

Кто-нибудь знает механизм механизма внутри метода ToString(). Что он считает все объектом и возвращает строку.

Скажем, я хочу построить метод, похожий на ToString(). У меня определенно будет действие преобразования параметров объекта внутри метода и, наконец, возврат результата с помощью возвращаемого типа.

Так как же метод ToString() делает это, не принимая параметр?

2 ответа

Это просто метод экземпляра, который возвращает строку, никакой магии внутри. Если тип данного объекта не переопределяет ToString по-своему, он вернет полное имя типа

MSDN: object.ToString,

Реализация по умолчанию метода ToString возвращает полное имя типа объекта, как показано в следующем примере.

Object obj = new Object();
Console.WriteLine(obj.ToString()); // System.Object

Но, как уже упоминалось, вы можете переопределить ToString в ваших классах:

public class User
{
    public int ID { get; set; }
    public string Name { get; set; }

    public override string ToString()
    {
        return Name;
    }
}

Тестовое задание:

User saddam = new User { ID = 1, Name = "Saddam" };
Console.WriteLine(saddam.ToString()); // "Saddam"

Не сердитесь на меня, но у меня есть ощущение, что может быть полезно прочитать некоторые учебники об ООП.

MSDN: объектно-ориентированное программирование

Каждый объект отвечает за реализацию своего собственного метода ToString().

Не существует единственного метода, который оценивает любой тип объекта.

Другие вопросы по тегам