C# 将流对象传递给函数,其中流可以是控制台或文件

C# 将流对象传递给函数,其中流可以是控制台或文件,c#,stream,C#,Stream,我想写一个接受流参数的函数。理想情况下,我希望该参数是控制台(如果我希望输出进入屏幕),或者是文件(如果我希望保存输出) 大概是这样的: void myFunc(<some stream object> strm) { strm.Write("something"); } void myFunc(strm) { 书写(“某物”); } < P>如何声明和调用函数以获得我正在寻找的行为?< P>而不是 Stase,考虑使用 TeXTrrIts/COD>。这样,您可以使用Str

我想写一个接受流参数的函数。理想情况下,我希望该参数是控制台(如果我希望输出进入屏幕),或者是文件(如果我希望保存输出)

大概是这样的:

void myFunc(<some stream object> strm)
{
   strm.Write("something");
}
void myFunc(strm)
{
书写(“某物”);
}

< P>如何声明和调用函数以获得我正在寻找的行为?

< P>而不是<代码> Stase,考虑使用<代码> TeXTrrIts/COD>。这样,您可以使用
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);
    }
}

我完全同意马克的回答:几乎可以肯定的是,一个
textwitter


但是,如果您必须处理任意流,则可以使用将流获取到控制台。我强烈建议您不要使用此选项,除非您真的必须这样做。

是的,因为此问题意味着基于文本的数据,这也是我的选择。