当我在C++
中编写一些I / O例程时,我通常会通过操作来自<iostream>
的接口使其尽可能通用。
例如:
void someRoutine(std::istream& stream) { ... }
如何在C#
中完成同样的工作?
我怀疑我可以根据System.IO.TextReader
或System.IO.TextWriter
编写我的例程,但我不确定。
显然我正在寻找C#
中的同一个基类,它与std::istream
或std::ostream
一样通用,并且可以通过多种方式进行扩展(例如,boost::iostreams
扩展了std::
个流。
答案 0 :(得分:5)
如果您想使用字符串,则应选择TextReader
或TextWriter
。
如果您想使用字节,则应该使用Stream
。
这些类由具体实现继承,例如FileStream
,StringWriter
和NetworkStream
。
答案 1 :(得分:3)
如果您只关心字节,请使用System.IO.Stream。 TextReader
/ TextWriter
适用于您知道基础数据为文本的情况。
答案 2 :(得分:1)
基类是 Stream
。 MemoryStream,FileStream等都继承自这个类。
答案 3 :(得分:0)
你可以让C#函数像C ++一样使用Stream(System.IO.Stream)。如果这是合适的,取决于你写的功能。