猿问

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

在 C# 中,如果我们想向 Console 输出错误,我们可以简单地编写:


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

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


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

相反,我需要写:


WarningException myEx=new WarningException("This is a warning");        

Console.Write(myEx.ToString());

为什么要这样设计?


犯罪嫌疑人X
浏览 171回答 1
1回答

撒科打诨

因为Console正在适应一个更旧的习惯用法 - 每个进程在启动时都有 3 个与之关联的流 - 一个标准输入流,一个标准输出流和一个标准错误流。这不是标准的警告流。请注意,如果在运行控制台应用程序时使用输出重定向,>file1.txt会将标准输出重定向到,file1.txt但错误输出将继续显示在控制台上。(您2>something用来重定向标准错误输出或2>&1将其重定向到标准输出将要到达的同一位置)
随时随地看视频慕课网APP
我要回答