MemoryStream.GetBuffer 方法

定义

返回从中创建此流的无符号字节的数组。

public:
 virtual cli::array <System::Byte> ^ GetBuffer();
public virtual byte[] GetBuffer ();
abstract member GetBuffer : unit -> byte[]
override this.GetBuffer : unit -> byte[]
Public Overridable Function GetBuffer () As Byte()

返回

Byte[]

创建此流所用的字节数组;或者如果在当前实例的构造期间没有向 MemoryStream 构造函数提供字节数组,则为基础数组。

例外

未使用公共可见缓冲区创建 MemoryStream 的实例。

注解

请注意,缓冲区包含可能未使用的已分配字节。 例如,如果将字符串“test”写入 MemoryStream 对象,则从 GetBuffer 返回的缓冲区的长度为 256,而不是 4,其中 252 个字节未使用。 若要仅获取缓冲区中的数据,请使用 ToArray 方法;但是, ToArray 会在内存中创建数据的副本。

缓冲区也可以是 null

若要创建 MemoryStream 具有公开可见缓冲区的实例,请使用 MemoryStreamMemoryStream(Byte[], Int32, Int32, Boolean, Boolean)MemoryStream(Int32)。 如果当前流可调整大小,则如果两次调用之间调整基础字节数组的大小,则对此方法的两次调用不会返回相同的数组。 有关附加信息,请参见 Capacity

注意

此方法在内存流关闭时有效。

适用于

另请参阅