MemoryStream 如何处理分配的缓冲区?
假设我在 MemoryStream 构造函数中分配一个缓冲区(缓冲区、偏移量、计数)。
MemoryStream
如何处理它?它会复制缓冲区还是使用它?如果我尝试写入比缓冲区长度更多的字节,它会使用另一个缓冲区(自动增长)吗?
在MSDN上找不到任何相关信息。
Let's say that I'm assigning a buffer in the MemoryStream
constructor (buffer, offset, count).
How do the MemoryStream
handle it? Will it copy the buffer, or use it? Will it use another buffer (autogrow) if I try to write more bytes than the length of the buffer?
Couldn't find any relevant info at MSDN.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
来自 MSDN:“初始化一个新的基于字节数组的指定区域(索引)的 MemoryStream 类的不可调整大小实例。”我之前使用过(缓冲区)构造函数;它使用数组作为存储,不涉及复制。
From MSDN: "Initializes a new non-resizable instance of the MemoryStream class based on the specified region (index) of a byte array." I've used the (buffer) constructor before; it uses the array as the storage, with no copying involved.
容量 设置为指定字节数组的长度。新流可以写入,但不能调整大小。
Capacity is set to the length of the specified byte array. The new stream can be written to, but is not resizable.