2011-11-04 13 views
36

Tworzenie instancji System.IO.Stream stream. Jedna z moich funkcji otrzymuje System.IO.Stream stream jako parametr i napisz do niej coś. Jak więc utworzyć nową instancję tego samego i przekazać ją do funkcji?Tworzenie instancji strumienia System.IO.Stream

+3

Tak. Mam go 'System.IO.Stream stream = new System.IO.MemoryStream();' – Rauf

Odpowiedz

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

Czy musimy wywołać Close lub Dispose na takim "pustym" strumieniu? –

+2

Krótka odpowiedź: tak. Aby uzyskać dłuższą odpowiedź, sprawdź odpowiedź Johna Skeeta http://stackoverflow.com/a/234257/1480854 – Josh

19

Musisz utworzyć wystąpienie jednej z podklas. Stream to klasa abstrakcyjna, której nie można bezpośrednio utworzyć.

Istnieje kilka opcji, jeśli spojrzeć na dole odniesienia tutaj:

Stream Class | Microsoft Developer Network

Najczęstszym prawdopodobnie będąc FileStream lub MemoryStream. Zasadniczo musisz zdecydować, skąd dane mają pochodzić dane z twojego strumienia, a następnie utworzyć instancję odpowiedniej podklasy.

0

Strumień jest klasą podstawową, należy utworzyć jeden z określonych typów strumieni, takich jak MemoryStream.

4
Stream stream = MemoryStream(); 

można użyć MemoryStream

-1

System.IO.Stream strumień jest klasą abstrakcyjną. Znajdź artykuł MSDN poniżej.

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

na przykład, po kod tworzy egzemplarz StreamReader.

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

System.IO.Stream jest klasa bazowa System.IO.StreamReader klasy (i innego zestawu klas).

+0

Uhm, StreamReader NIE jest klasą pochodną strumienia. StreamReader to kompozycja nad Streamem. MemoryStream, FileStream, NetworkStream itp są przykładami klasy pochodnej ze Stream. Sprawdź przestrzeń nazw System.IO. Poza tym twoja odpowiedź jest poprawna :) – Polity

+0

To jest duży błąd, StreamReadera nie można przesłać do Strumienia, ponieważ nie jest podklasą – sam

Powiązane problemy