【发布时间】:2013-03-07 19:06:27
【问题描述】:
.NET 框架充满了示例,其中方法调用将返回一个 Stream,然后您可以根据需要读取和实现该 Stream。但这是如何在幕后工作的呢?什么支持流?
假设我正在编写一个解析器,它接受一些输入并将一些数据解析为预定义的格式。例如,如果我创建了一个 MemoryStream,然后使用 StreamWriter 将我的内容写入其中,然后让该方法返回流,我会遇到问题,因为编写器将在完成时关闭底层流,而调用者将无法按预期阅读。
这通常是如何管理的?流的内容是否存储在对象中直到需要(如byte[]),然后当调用请求流的方法时它会在那个时候创建它还是什么?
【问题讨论】:
-
你指的是什么魔法?
Stream GetAStream(){return new MemoryStream();}工作。