Stream
和MemoryStream
在C#中的主要区别是什么?
如果我需要创建一个没有文件的Stream
,那么应该使用MemoryStream
吗?
MemoryStream
是从普通类 Stream
派生而来。
关于 Stream
,从MSDN中可以得知:
提供字节序列的通用视图。这是一个抽象类。
因此,您不能创建 Stream
的实例。您必须使用其中一个派生类,例如 MemoryStream
,FileStream
等。
MemoryStream
和FileStream
是.NET框架中继承自抽象基类Stream
的类的示例,如下所示:
你可以使用FileStream
读/写文件,但可以使用MemoryStream
读/写内存中的数据,例如从字符串解码的字节数组。
你不应该单独使用Stream
,而应该将其用于多态性,即将其传递给能够接受任何Stream
实现作为参数的方法。