意外的MemoryStream行为

时间:2014-12-15 10:44:14

标签: c#

我正在读写同一个MemoryStream。

像这样(可能的编译错误):

MemoryStream stream = new MemoryStream();
stream.Write("1234",0,4);
stream.Position -= 4;
stream.Read(buffer,0,4);

为什么我要移动位置?为什么读写不分开?

是否还有其他Stream可供使用?

1 个答案:

答案 0 :(得分:2)

因为这应该是如何工作的。您有一个位置,将其视为光标,设置在流中您可以读取或写入的位置。阅读和写作都推进了这一立场。

如果您仅仅使用MemoryStream在呼叫者之间交换数据,作为伪IPC机制,那么可能存在一些更好的方法。