我想编写一个接受stream参数的函数。理想情况下,我希望该参数是控制台(如果我想要输出到屏幕)或文件(如果我想保存输出)。
这样的事情:
void myFunc(<some stream object> strm)
{
strm.Write("something");
}
如何声明并调用函数来获取我正在寻找的行为?
答案 0 :(得分:4)
而不是Stream
,请考虑使用TextWriter
。这样,您可以使用StreamWriter
写入文件,使用Console.Out
写入控制台:
static void DoStuff(TextWriter output)
{
output.WriteLine("doing stuff");
}
static void Main()
{
DoStuff(Console.Out);
using( var sw = new StreamWriter("file.txt") )
{
DoStuff(sw);
}
}
答案 1 :(得分:1)
我完全赞同马克的答案:TextWriter
几乎可以肯定 。
但是,如果您绝对有来处理任意流,则可以使用Console.OpenStandardOutput()
来获取到控制台的流。我会强烈建议你不要使用它,除非你真的必须这样做。