Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 创建将写入文件或写入控制台输出的通用方法_C#_File Io_Console.writeline - Fatal编程技术网

C# 创建将写入文件或写入控制台输出的通用方法

C# 创建将写入文件或写入控制台输出的通用方法,c#,file-io,console.writeline,C#,File Io,Console.writeline,我有两个相同的函数,一个写入文件,一个写入控制台。 有没有办法使文件/控制台成为我传递给函数的通用对象 public void WatchWindow() { var max = _colLengths.Max(); for (var rowIndex = 0; rowIndex < max; ++rowIndex) { for (var colIndex = 0; colIndex < WindowWidth; ++colIndex)

我有两个相同的函数,一个写入文件,一个写入控制台。
有没有办法使文件/控制台成为我传递给函数的通用对象

public void WatchWindow()
{

    var max = _colLengths.Max();
    for (var rowIndex = 0; rowIndex < max; ++rowIndex)
    {
        for (var colIndex = 0; colIndex < WindowWidth; ++colIndex)
        {
            if (rowIndex < _colLengths[colIndex])
                Console.Write("{0} ", _actualWindow[colIndex]rowIndex].SymbolName);
            else
                Console.Write("   ");
         }
         Console.WriteLine();
     }
     Console.WriteLine();
}

public void PrintWindow(StreamWriter file)
{

    var max = _colLengths.Max();
    for (var rowIndex = 0; rowIndex < max; ++rowIndex)
    {
        for (var colIndex = 0; colIndex < WindowWidth; ++colIndex)
        {
             if (rowIndex < _colLengths[colIndex])
                 file.Write("{0} ", _actualWindow[colIndex][rowIndex].SymbolName);
             else
                 file.Write("   ");
         }
         file.WriteLine();
     }
     file.WriteLine();
}
public void WatchWindow()
{
var max=_collength.max();
对于(变量rowIndex=0;rowIndex
A
StreamWriter
是一个
TextWriter
Console的
Write*
静态方法
Write to
Console.Out
Console.Out
是一个
文本编写器
。因此,常见的“事情”是在
文本编写器上编写

public void WriteToFile(StreamWriter file)
{
    PrintWindow(file);
}

public void WriteToConsole()
{
    PrintWindow(Console.Out);
}

public void PrintWindow(TextWriter writer)
{

    var max = _colLengths.Max();
    for (var rowIndex = 0; rowIndex < max; ++rowIndex)
    {
        for (var colIndex = 0; colIndex < WindowWidth; ++colIndex)
        {
            if (rowIndex < _colLengths[colIndex])
                writer.Write("{0} ", _actualWindow[colIndex][rowIndex].SymbolName);
            else
                writer.Write("   ");
        }
        writer.WriteLine();
    }
    writer.WriteLine();
}
public void WriteToFile(StreamWriter文件)
{
打印窗口(文件);
}
公共无效WriteToConsole()
{
打印窗口(控制台外);
}
公共无效打印窗口(TextWriter)
{
var max=_collength.max();
对于(变量rowIndex=0;rowIndex
您可以使用
WriteToFile
/
WriteToConsole
方法(或者直接使用
PrintWindow
方法,我会将其重命名为更合适的方法,如
WriteToTextWriter