Ты прав; это кажется излишне многословным, особенно по сравнению с аналогичным StreamReader.BaseStream
. В действительности, он просто возвращает ссылку на базовый поток, точно так же, как StreamReader.
Я полагаю, что предположение описания состоит в том, что запись в базовый поток потребует сохранения записанных данных в каком-либо постоянном хранилище, например в файле. Конечно, в действительности это вообще не нужно (в худшем случае это может просто ничего не делать).
Если вы действительно хотели экстраполировать, вы могли бы интерпретировать это как означающее, что свойство CanWrite
нижележащего потока равно true
(по крайней мере, в точке, к которой оно было присоединено к StreamWriter).
Чтобы убедиться, что он действительно просто возвращает базовый поток, вот декомпилированный код из Reflector:
public virtual Stream BaseStream
{
[TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")]
get
{
return this.stream;
}
}
где поле stream
назначено в методе Init
:
private void Init(Stream stream, Encoding encoding, int bufferSize)
{
this.stream = stream;
...
который в свою очередь вызывается конструктором с аргументом присоединенный поток:
[SecuritySafeCritical]
public StreamWriter(Stream stream, Encoding encoding, int bufferSize)
: base(null)
{
...
this.Init(stream, encoding, bufferSize);
}