【问题标题】:Why does Console.Out.WriteLine exist?为什么 Console.Out.WriteLine 存在?
【发布时间】:2010-11-12 01:22:56
【问题描述】:
实际上问题应该是为什么Console.WriteLine 存在只是为了作为Console.Out.WriteLine 的包装器
我发现了这个使用智能感知的小方法,然后打开.NET reflector 并“反编译”了Console.WriteLine 方法的代码,发现了这个:
public static void WriteLine(string value)
{
Out.WriteLine(value);
}
那么为什么WriteLine 是这样实现的呢?这完全只是一个捷径还是有其他原因?
【问题讨论】:
标签:
c#
.net
windows
console-application
reflector
【解决方案1】:
Console.WriteLine 是一个静态方法。 Console.Out 是一个静态对象,可以作为参数传递给任何采用TextWriter 的方法,并且该方法可以调用非静态成员方法WriteLine。
其中一个有用的示例是某种可自定义的日志记录例程,您可能希望将输出发送到 stdout (Console.Out)、stderr (Console.Error) 或无处 (System.IO.TextWriter.Null) ),或基于某些运行时条件的任何其他内容。
【解决方案2】:
Brad Abrams(微软 CLR 和 .NET 框架的创始成员)说如下。
Console.WriteLine() 只是 Console.Out.WriteLine 的快捷方式。
WriteLine 属性对控制台进行了重载,以使其更易于编写。
来源:书籍“Anders Hejlsberg 的 C# 编程语言”。