为什么Console.Out.WriteLine存在?

时间:2009-07-19 02:56:00

标签: c# .net windows console-application reflector

实际上问题应该是为什么Console.WriteLine只是作为Console.Out.WriteLine

的包装而存在的原因

我发现这个小方法使用intellisense,然后打开.NET reflector并'反编译'Console.WriteLine方法的代码,发现了这个:

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

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

2 个答案:

答案 0 :(得分:50)

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

一个有用的示例是某种可自定义的日志记录例程,您可能希望将输出发送到stdoutConsole.Out),stderr({{1} })或无处(Console.Error),或基于某些运行时条件的任何其他内容。

答案 1 :(得分:9)

Brad Abrams (微软CLR和.NET框架的创始成员)说如下。

Console.WriteLine()只是Console.Out.WriteLine 的快捷方式。 控制台被WriteLine重载,以便更容易编写

来源:Book" Anders Hejlsberg撰写的C#编程语言"。