Задать вопрос
Shull
@Shull
хочу быть хорошим IT-шником

Как Console.WriteLine() воспринимает объект StringBuilder-а?

Я знаю, что можно распечатать число, строку, даже функцию(точнее её возвращаемое значение).
Но разве можно распечатать объект?
Разве объект возвращает значение?
Как такое возможно?
StringBuilder x=new StringBuilder("текст");
Console.WriteLine(x);
  • Вопрос задан
  • 68 просмотров
Подписаться 1 Простой 6 комментариев
Решения вопроса 2
edward_freedom
@edward_freedom
Прочитай в книге про переопределение ToString
public class Test
        {
            private string _text;
            public Test(string text)
            {
                this._text = text;
            }

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


var x = new Test("текст");
            Debug.WriteLine(x);
Ответ написан
Комментировать
Console.WriteLine для печати объектов использует метод ToString
и StringBuilder.ToString как раз возвращает сбилженую строку.

По-умолчанию, ToString возвращает имя типа.

Ну и вот код, который отрабатывает Console.WriteLine(obj)
https://source.dot.net/#System.Private.CoreLib/Tex...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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