为什么Console.Out.WriteLine存在?

其实问题应该是为什么Console.WriteLine存在只是为Console.Out.WriteLine的包装

我发现这个小方法使用intellisense,然后打开.NETreflection器和'反编译' Console.WriteLine方法的代码,发现这个:

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

那么为什么WriteLine这种方式实现呢? 这完全是一个捷径,还是有另一个原因?

Console.WriteLine是一个静态方法。 Console.Out是一个静态对象,可以作为参数传递给任何使用TextWriter方法,并且该方法可以调用非静态成员方法WriteLine

一个例子,这将是有用的某种可定制的日志程序,您可能需要发送输出到stdoutConsole.Out ), stderrConsole.Error )或无处( System.IO.TextWriter.Null ),或任何其他基于一些运行时情况。

Brad Abrams (微软的CLR和.NET框架的创始人)说了以下内容。

Console.WriteLine()只是Console.Out.WriteLine的快捷方式控制台是由WriteLine propery超载,使更容易编写

资料来源:“Anders Hejlsberg编写的C#编程语言”。