我一直想知道Stream
在C#.Net中使用类的最佳实践是什么。提供已写入的流还是提供流更好?即:
public Stream DoStuff(...)
{
var retStream = new MemoryStream();
//Write to retStream
return retStream;
}
相对于
public void DoStuff(Stream myStream, ...)
{
//write to myStream directly
}
我一直使用前一个示例来进行生命周期控制,但是我感到这Stream
是因为缺少更好的单词而无法使用“流式处理”的方式。
我更喜欢“第二种方式”(对提供的流进行操作),因为它具有一些明显的优点:
Stream
提供的类型进行操作)。Stream
现在或以后,很容易将其抽象为扩展方法。另外,如果您要返回一个新的流(选项1),您将不得不Seek
再次从该流中读取数据会感到有些奇怪(除非您在方法本身中这样做,这是次优的)再一次,因为可能并不总是需要它-以后在所有情况下都可能无法读取该流)。在Seek
将一个已经存在的流传递给可以清楚地写入该流的方法之后,看起来似乎并不那么尴尬。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句