| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > Стандартные потоки Console.In и Console.Out |
| Автор: Luckylad 12.1.2007, 23:08 |
| Друзья, объясните мне пожалуйста, если можете, каким образом стандартные потоки Console.In, Console.Out, Console.Error могут быть объектами абстрактных классов TextReader и TextWriter соответственно? Ведь мы же не можем создать экземпляр абстрактного класса? Цитата из "Полный справочник по C#" Герберт Шилдт : "Чтобы создать символьный поток, поместите байтовый поток в одну из символьных потоковых C#-оболочек. В вершине иерархии символьных потоков находятся абстрактные классы TextReader и TextWriter. ...(дальше)... Поток Console.In - экземпляр класса TextReader. ...(дальше)... Потоки Console.Out и Console.Error - объекты типа TextWriter." Может я чего-то не понимаю? В чем тут дело? |
| Автор: archimed7592 12.1.2007, 23:17 | ||
пример:
|
| Автор: ivashkanet 13.1.2007, 12:02 | ||
| Посмотрев под дебагером, увидел, что Console.Out имеет тип SyncTextWriter Получить его можно так:
Походу, это потокобезопасная обертка к TextWriter Luckylad, срочно читать про наследование и приведение типов |
| Автор: Luckylad 13.1.2007, 14:50 | ||
| О приведенном выше приведении типов я знаю и сам ни раз использовал. Видимо я не правильно понял Шилдта - мне подумалось, что стандартные потоки являются непосредственно созданными экземплярами класса TextReader/TextWriter, то есть
вот поэтому вопрос и возник Спасибо |