2011-01-11 13 views
3

私は今日約StreamWriterを読んでいて、この物件にはBaseStreamという名前があります。.Net StreamWriter.BaseStream、この定義は何を意味しますか? "バッキングストアとのインターフェイスを持つ基底のストリームを取得します。"

私は定義を探していると、この

を発見された「バッキングストアとのインターフェースを基になるストリームを取得します。」 MSDN - StreamWriter.BaseStream

ここから

私はそれの定義は非常に簡単ですのでBaseStreamは、StreamReaderをのために何であるかを理解する:

は、基になるストリームを返します。

しかし、StreamWriter.BaseStreamの定義は何を意味しますか?あるいは、明確に言うと、定義のこの部分は「バッキングストアとのインターフェース」を意味しますか?それは私にはばかげているように聞こえる。

答えて

2

あなたはそうです。特にStreamReader.BaseStreamと比べると、不必要に言葉に見えます。実際には、StreamReaderとまったく同じ、基本となるストリームへの参照を返します。

私は、基本的なストリームへの書き込みには、書き込まれたデータをファイルなどの永続ストアに保存することが必要であると考えていると思います。もちろん、これは実際には必要ではありません(最悪の場合、単純に何もできません)。

あなたはが本当にが補外したい場合は、基になるストリームのCanWriteプロパティがtrue(少なくとも時点でそれはのStreamWriterに添付された)であることを意味するように、その解釈ができます。

streamフィールドが Init方法で割り当てられている
public virtual Stream BaseStream 
{ 
    [TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")] 
    get 
    { 
     return this.stream; 
    } 
} 

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); 
} 

+1

さて、それは今や理にかなっています。 。 。ありがとう。したがって、それは2つの部分の定義です。 。 。 1.基本となるStreamと2。ああ、それは何らかの永続的なデータストアとインターフェイスするストリームです。これはStreamWriterオブジェクトなので#2は少し冗長です。確かに非常に言葉。ありがとうございました。 – richard

+0

@リチャード・デス・ロンド:そうです。 – Ani

2

のでStreamの一般的な定義はこれです:

シーケンスバイトの の一般的なビューを提供します。

StreamWriter

は特に エンコーディングでストリームに 文字を書くためたTextWriterを実装します。

したがって、BaseStreamプロパティは、文字が書き込まれる場所です。これは、FileStreamまたはMemoryStream、またはStreamを実装するものです。

基本ストリームを取得します。

0

「デイジーチェイン」のストリームのときだと思います。

たとえば、コードはストリームAに書き込みます。ストリームAはストリームBに書き込みます。ストリームBはストリームCに書き込み、ディスクに書き込みます。

この場合、ストリームAのベースストリームはBです。

+0

は、私はそれがベースストリームであることを、私は思う概念を理解し、私は実際に何を意味するのか、「バッキングストアとのインタフェース」疑問に思って。それは私には意味をなさない。私はこれらの言葉を全く理解していません。 – richard

関連する問題