Почему существует Console.Out.WriteLine?
На самом деле возникает вопрос, почему существует Console.WriteLine
только для того, чтобы быть оберткой для Console.Out.WriteLine
Я нашел этот маленький метод, используя intellisense, затем открыл .NET рефлектор и "декомпилировал" код для метода Console.WriteLine
и нашел это
public static void WriteLine(string value)
{
Out.WriteLine(value);
}
Итак, почему WriteLine
реализовано таким образом? Является ли это всего лишь ярлыком или есть другая причина?
Ответы
Ответ 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, чтобы сделать эту запись намного проще.
Источник: Книга "Язык программирования С# Андерса Хейлсберга".