Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么存在Console.Out.WriteLine?_C#_.net_Windows_Console Application_Reflector - Fatal编程技术网

C# 为什么存在Console.Out.WriteLine?

C# 为什么存在Console.Out.WriteLine?,c#,.net,windows,console-application,reflector,C#,.net,Windows,Console Application,Reflector,实际上,问题应该是为什么Console.WriteLine只是作为Console.Out.WriteLine 我使用intellisense找到了这个小方法,然后打开并“反编译”了控制台的代码。WriteLine方法发现: public static void WriteLine(string value) { Out.WriteLine(value); } 那么为什么WriteLine是这样实现的呢?这完全是一种快捷方式还是有其他原因?控制台。WriteLine是一种静态方法Cons

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

我使用intellisense找到了这个小方法,然后打开并“反编译”了
控制台的代码。WriteLine
方法发现:

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

那么为什么
WriteLine
是这样实现的呢?这完全是一种快捷方式还是有其他原因?

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


一个有用的例子是某种可定制的日志例程,您可能希望将输出发送到
stdout
Console.Out
)、
stderr
Console.Error
)或无处(
System.IO.TextWriter.Null
),或者基于某些运行时条件的任何其他内容。

Brad Abrams(微软CLR和.NET framework的创始成员)说:

Console.WriteLine()只是Console.Out.WriteLine的快捷方式。 控制台被WriteLine属性重载,使其更易于编写

资料来源:Anders Hejlsberg的《C#编程语言》一书