C#中Stream
和MemoryStream
之间的主要区别是什么?
如果我需要创建一个没有文件的Stream
,我应该使用MemoryStream
吗?
答案 0 :(得分:11)
MemoryStream
来自普通班级Stream
。
关于MSDN的Stream
:
提供字节序列的通用视图。这是一个抽象类。
因此,您无法创建Stream
的实例。您必须使用其中一个派生类,例如MemoryStream
,FileStream
等。
答案 1 :(得分:8)
MemoryStream
和FileStream
是.NET框架中继承自抽象基类Stream
的类的示例,如此精简继承树所示:
您可以使用FileStream
读取/写入文件,但使用MemoryStream
来读取/写入内存数据,例如从字符串解码的字节数组。
你本身不会使用Stream
,而是将其用于多态,即将其传递给可以接受Stream
作为参数的任何实现的方法。