为什么C#中有Console.Error()但没有Console.Warning?

时间:2018-08-09 06:39:28

标签: c# .net

在C#中,如果要将错误输出到控制台,我们可以简单地编写:

Console.Error.Write("Error!");

但是当我尝试向控制台写警告时,我发现没有:

Console.Warning.Write("Warning!");

相反,我需要写:

WarningException myEx=new WarningException("This is a warning");        
Console.Write(myEx.ToString());

为什么要为此格式设计?

1 个答案:

答案 0 :(得分:11)

因为Console正在适应一个更古老的习惯用法-每个进程在启动时都有3个与之关联的流-一个标准输入流,一个标准输出流和一个标准错误流。

这不是标准的警告流。

请注意,如果在运行控制台应用程序时使用输出重定向,则>file1.txt会将标准输出重定向到file1.txt,但控制台上将继续显示错误输出。 (您可以使用2>something重定向标准错误输出,或者使用2>&1重定向至标准输出将要到达的位置)