2011-11-04 7 views
36

System.IO.Stream streamのインスタンスを作成する方法。私の関数の1つはパラメータとしてSystem.IO.Stream streamを受け取り、何かを書きます。だから私はどのように同じの新しいインスタンスを作成し、関数に渡すことができますか?System.IO.Streamストリームのインスタンスを作成する方法

+3

はい。それは 'System.IO.Stream stream = new System.IO.MemoryStream();' – Rauf

答えて

66
System.IO.Stream stream = new System.IO.MemoryStream(); 
+2

そのような "空の"ストリームを閉じるかコールする必要はありますか? –

+2

短い答え:はい。より長い回答については、John Skeetの回答http://stackoverflow.com/a/234257/1480854を参照してください。 – Josh

19

サブクラスの1つのインスタンスを作成する必要があります。 Streamは、直接インスタンス化できない抽象クラスです。最も一般的なものは、おそらくFileStreamまたはMemoryStream

Stream Class | Microsoft Developer Network

:あなたはここに参照の下を見れば

は選択肢の束があります。基本的には、ストリームの元になるデータのバックアップをどこで行うかを決め、適切なサブクラスのインスタンスを作成する必要があります。

0

Streamは基本クラスで、MemoryStreamなどの特定の種類のストリームの1つを作成する必要があります。

4
Stream stream = MemoryStream(); 

あなたはMemoryStreamを

-1

System.IO.Streamストリームは抽象クラスで使用することができます。以下のMSDNの記事をご覧ください。例えば

http://msdn.microsoft.com/en-us/library/system.io.stream.aspx

コードはStreamReaderのインスタンスを作成し、次の。

System.IO.Stream textStream = new System.IO.StreamReader(""); 

System.IO.StreamベースSystem.IO.StreamReaderクラスのクラス(およびクラスの他のセット)です。

+0

ですが、StreamReaderはStreamの派生クラスではありません。 StreamReaderはStreamを介したコンポジションです。 MemoryStream、FileStream、NetworkStreamなどはStreamからの派生クラスの例です。 System.IO名前空間を確認します。それ以外は、あなたの答えは正しいです:) – Polity

+0

これは大きな失敗です、StreamReaderはストリームにキャストすることができませんそれはサブクラスではない – sam

関連する問題