Lucas Lucas - 18 days ago 7
C# Question

Why does Console.Out.WriteLine exist?

Actually the question should be why does

Console.WriteLine
exist just to be a wrapper for
Console.Out.WriteLine


I found this little method using intellisense, then opened .NET reflector and 'decompiled' the code for the
Console.WriteLine
method and found this:

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


So why is
WriteLine
implemented this way? Is it totally just a shortcut or is there another reason?

Answer

Console.WriteLine is a static method. Console.Out is a static object that can get passed as a parameter to any method that takes a TextWriter, and that method could call the non-static member method WriteLine.

An example where this would be useful is some sort of customizable logging routines, where you might want to send the output to stdout (Console.Out), stderr (Console.Error) or nowhere (System.IO.TextWriter.Null), or anything else based on some runtime condition.