Stream
We use many different derived streams, such as FileStream
and MemoryStream
. A single C# program often uses many streams together.
In most programs, the Stream
type itself isn't usually used directly. It instead is an abstract
base class
for more derived streams.
Because Stream
is an abstract
base class
for other streams such as FileStream
and MemoryStream
, you can implicitly cast those streams to Stream
types.
static
Print method) that receives a Stream
formal parameter.FileStream
and MemoryStream
to this method. We use the Stream
abstraction to perform certain tasks.using System; using System.IO; class Program { static void Main() { FileStream stream1 = File.Open("C:\\a", FileMode.Open); Print(stream1); MemoryStream stream2 = new MemoryStream(new byte[1234]); Print(stream2); } static void Print(Stream stream) { Console.WriteLine(stream.Length); Console.WriteLine(stream.Position); } }5469165 0 1234 0
Because Stream
can substitute for many different derived streams, it is sometimes useful to have a field or parameter of type Stream
. This can help in some methods.
FileStream
and one that receives MemoryStream
).The Stream
class
is an abstract
class
containing many abstract
and virtual
methods. These methods are implemented in the classes that inherit from Stream
.
Stream
types in the .NET Framework.Stream
is an abstract
base class
for more useful streams. It is a useful way to deal with different streams at a higher level of abstraction.