Задать вопрос
@ikutin666

Как работает ToString()?

ToString() метод Object, как так происходит что ToString() знает о дочернем классе и выводит его имя? и даже если я его привожу к object поведение не меняется?
public class TEST
		{ 
		}
Console.WriteLine(test.ToString()); //TEST.Program+TEST
Console.WriteLine((object)test.ToString()); //TEST.Program+TEST
  • Вопрос задан
  • 121 просмотр
Подписаться 1 Средний Комментировать
Решения вопроса 3
idShura
@idShura
Ответ на ваш вопрос тут Object.ToString Метод
Ответ написан
Комментировать
Читай про наследование, полиморфизм, и как работает модификатор virtual.

Если коротко - когда ты приводишь свой объект к базовому - рантайм всё равно знает, где находится реализация метода ToString благодаря тому, что в твоём объекте хранится указатель на реализацию этого метода.
Ответ написан
@ikutin666 Автор вопроса
кому интересно вот нашел ответ
public class ObjectCopy 
    {
        public virtual string ToStringCopy()
        {
            return GetType().ToString();
        }
    }


public class Children : ObjectCopy
    { 
    
    }


Console.WriteLine(c.ToStringCopy());  //TEST2.Children
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы