Подтвердить что ты не робот

Почему существует Console.Out.WriteLine?

На самом деле возникает вопрос, почему существует Console.WriteLine только для того, чтобы быть оберткой для Console.Out.WriteLine

Я нашел этот маленький метод, используя intellisense, затем открыл .NET рефлектор и "декомпилировал" код для метода Console.WriteLine и нашел это

public static void WriteLine(string value)
{
    Out.WriteLine(value);
}

Итак, почему WriteLine реализовано таким образом? Является ли это всего лишь ярлыком или есть другая причина?

4b9b3361

Ответ 1

Console.WriteLine является статическим методом. Console.Out - это статический объект, который может передаваться как параметр любому методу, который принимает TextWriter, и этот метод может вызывать метод нестатического участника WriteLine.

Примером, где это было бы полезно, является какая-то настраиваемая процедура ведения журнала, где вы можете отправить вывод на stdout (Console.Out), stderr (Console.Error) или нигде (System.IO.TextWriter.Null) или что-либо еще, основанное на некотором состоянии времени выполнения.

Ответ 2

Brad Abrams (член-учредитель среды CLR и .NET в Microsoft) говорит следующее.

Console.WriteLine() - это просто ярлык для Console.Out.WriteLine. Консоль была перегружена собственностью WriteLine, чтобы сделать эту запись намного проще.

Источник: Книга "Язык программирования С# Андерса Хейлсберга".