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
AStreamWriter
是一个TextWriter
。Console的Write*
静态方法Write toConsole.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
)