C#-流问题

C#-流问题,c#,c++,stream,C#,C++,Stream,当我在C++中编写一些I/O例程时,我通常会通过在中的接口上进行操作,使其尽可能通用 例如: 在C#中应该如何进行同样的操作 我怀疑我可以基于System.IO.TextReader或System.IO.TextWriter编写例程,但我不确定。 显然,我在C#中寻找一个相同的基类,它与std::istream或std::ostream一样通用,并且可以以多种方式扩展(例如,当boost::iostreams扩展std:流时)。如果只关心字节,请使用TextReader/TextWriter适

当我在
C++
中编写一些I/O例程时,我通常会通过在
中的接口上进行操作,使其尽可能通用

例如:

C#
中应该如何进行同样的操作

我怀疑我可以基于
System.IO.TextReader
System.IO.TextWriter
编写例程,但我不确定。



显然,我在
C#
中寻找一个相同的基类,它与
std::istream
std::ostream
一样通用,并且可以以多种方式扩展(例如,当
boost::iostreams
扩展
std:
流时)。

如果只关心字节,请使用
TextReader
/
TextWriter
适用于您知道底层数据为文本的情况。

如果您想处理字符串,您应该使用
TextReader
TextWriter

如果您想使用字节,应该使用


这些类由具体实现继承,例如
FileStream
StringWriter
,和
NetworkStream
,基类是
Stream
。内存流、文件流等从这个类继承。

< P>可以将C++函数用流(Soal.Io.St流)作为C++。这是否合适取决于您编写的函数。

抽象类与您将要得到的基本类差不多。。。(尽管这也取决于你在寻找什么;还有)这并不完全正确。TextReader和TextWriter对流进行操作,但它们不在流或文件流的继承链中。它们分别是StringReader和StringWriter的基础。对于OP想要做的事情,System.IO.Stream是合适的类(相当于一个组合输入和输出流)。@Chris:我从来没有说过。我说了这些课。我误解了你的答案,抱歉。我把“这些类”理解为上面提到的所有类,我想OP也会犯同样的错误。
void someRoutine(std::istream& stream) { ... }