Внутренний механизм 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"
Не сердитесь на меня, но у меня есть ощущение, что может быть полезно прочитать некоторые учебники об ООП.
Каждый объект отвечает за реализацию своего собственного метода ToString().
Не существует единственного метода, который оценивает любой тип объекта.