C# に Console.Error() があるのに、Console.Warning がないのはなぜですか? 質問する

C# に Console.Error() があるのに、Console.Warning がないのはなぜですか? 質問する

C# では、コンソールにエラーを出力したい場合は、次のように記述するだけです。

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

しかし、コンソールに警告を書き込もうとすると、何もないことがわかりました。

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

代わりに、次のように書く必要があります。

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

なぜこのように設計されているのでしょうか?

ベストアンサー1

これはConsole、起動時にすべてのプロセスに関連付けられた 3 つのストリーム (1 つの標準入力ストリーム、1 つの標準出力ストリーム、および 1 つの標準エラー ストリーム) を持つ、はるかに古い慣用句に適応しているためです。

(ここでの標準名はConsole.In、、でConsole.Outあり、C の、&ではConsole.Errorなく、.NET の世界における名前です。)stdinstdoutstderr

これは標準的な警告ストリームではありません。

コンソール アプリケーションの実行時に出力リダイレクトを使用すると、>file1.txt標準出力は にリダイレクトされますfile1.txtが、エラー出力はコンソールに引き続き表示されることに注意してください。(2>something標準エラー出力をリダイレクトするか、2>&1標準出力と同じ場所にリダイレクトするには を使用します)

おすすめ記事