Метод SetOut
Метод SetOut статический.
Перед подменой сохраняют
Out
и возвращают в finally.
После вызова
Write
и
WriteLine
пишут в новый поток.
Синтаксис
Console.SetOut(newWriter);
Пример
Давайте перенаправить
Write в буфер:
using System;
using System.IO;
class Program
{
static void Main()
{
TextWriter saved = Console.Out;
var buffer = new StringWriter();
buffer.NewLine = "\n";
Console.SetOut(buffer);
try
{
Console.Write("abcde");
string res = buffer.ToString();
Console.SetOut(saved);
Console.WriteLine(res);
}
finally
{
Console.SetOut(saved);
}
}
}
Результат выполнения кода:
"abcde"
Пример
Давайте проверить, что
Out указывает на буфер:
using System;
using System.IO;
class Program
{
static void Main()
{
TextWriter saved = Console.Out;
var buffer = new StringWriter();
Console.SetOut(buffer);
try
{
bool res = Console.Out == buffer;
Console.SetOut(saved);
Console.WriteLine(res);
}
finally
{
Console.SetOut(saved);
}
}
}
Результат выполнения кода:
True
Пример
Давайте вернуть прежний
Out после записи:
using System;
using System.IO;
class Program
{
static void Main()
{
TextWriter saved = Console.Out;
var buffer = new StringWriter();
Console.SetOut(buffer);
try
{
Console.WriteLine("x");
}
finally
{
Console.SetOut(saved);
}
bool res = Console.Out == saved;
Console.WriteLine(res);
}
}
Результат выполнения кода:
True