其实问题应该是为什么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
。
一个例子,这将是有用的某种可定制的日志程序,您可能需要发送输出到stdout
( Console.Out
), stderr
( Console.Error
)或无处( System.IO.TextWriter.Null
),或任何其他基于一些运行时情况。
Brad Abrams (微软的CLR和.NET框架的创始人)说了以下内容。
Console.WriteLine()只是Console.Out.WriteLine的快捷方式 。 控制台是由WriteLine propery超载,使更容易编写 。
资料来源:“Anders Hejlsberg编写的C#编程语言”。