在C#中,如果要将错误输出到控制台,我们可以简单地编写:
Console.Error.Write("Error!");
但是当我尝试向控制台写警告时,我发现没有:
Console.Warning.Write("Warning!");
相反,我需要写:
WarningException myEx=new WarningException("This is a warning");
Console.Write(myEx.ToString());
为什么要为此格式设计?
答案 0 :(得分:11)
因为Console
正在适应一个更古老的习惯用法-每个进程在启动时都有3个与之关联的流-一个标准输入流,一个标准输出流和一个标准错误流。
这不是标准的警告流。
请注意,如果在运行控制台应用程序时使用输出重定向,则>file1.txt
会将标准输出重定向到file1.txt
,但控制台上将继续显示错误输出。 (您可以使用2>something
重定向标准错误输出,或者使用2>&1
重定向至标准输出将要到达的位置)