2011-11-04 4 views
36

Как создать экземпляр System.IO.Stream stream. Одна из моих функций принимает в качестве параметра 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

Нужно ли нам называть Close или Dispose на таком «пустом» потоке? –

+2

Короткий ответ: Да. Для более длительного ответа, проверьте ответ Джона Скита http://stackoverflow.com/a/234257/1480854 – Josh

19

Вам необходимо создать экземпляр одного из подклассов. Stream - абстрактный класс, который не может быть создан непосредственно.

Есть куча вариантов, если вы посмотрите на нижней части справки здесь:

Stream Class | Microsoft Developer Network

Наиболее распространенным, вероятно, быть FileStream или MemoryStream. В принципе, вам нужно решить, где вы хотите, чтобы данные поддерживали ваш поток, а затем создайте экземпляр соответствующего подкласса.

0

Stream - это базовый класс, вам необходимо создать один из определенных типов потоков, например MemoryStream.

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

Uhm, StreamReader НЕ является производным классом Stream. StreamReader - это композиция поверх Stream. MemoryStream, FileStream, NetworkStream и т. Д. Являются примерами класса Derived из Stream. Проверьте пространство имен System.IO. Кроме того, ваш ответ правильный :) – Polity

+0

Это большой провал, StreamReader не может быть передан в Stream, потому что это не подкласс – sam

Смежные вопросы