Свойство Out
Out получают перед
подменой и возвращают в
finally. Менять поток -
SetOut.
Сообщения об ошибках идут в
Error,
не сюда.
Синтаксис
TextWriter writer = Console.Out;
Пример
Давайте записать через
Out.WriteLine в буфер:
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.Out.WriteLine("abcde");
string res = buffer.ToString();
Console.SetOut(saved);
Console.WriteLine(res);
}
finally
{
Console.SetOut(saved);
}
}
}
Результат выполнения кода:
"abcde\n"
Пример
Давайте сравнить сохранённый поток с текущим до подмены:
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.Write("x");
}
finally
{
Console.SetOut(saved);
}
bool res = Console.Out == saved;
Console.WriteLine(res);
}
}
Результат выполнения кода:
True