C# (dotnetcore)で標準出力と標準エラー出力 (c#でもUNIX文化のパイプを利用したい)
プロセス間通信の一つである、パイプを利用する方法(標準入力)をC#で前回やりました。
今回は、標準出力、標準エラー出力についてのエントリです。
標準出力
はい。Visual Studio 2019 for Macでコンソールアプリを新規作成した際の状態が、 もうすでに標準出力です。
using System; namespace example_stdout { class Program { static void Main(string[] args) { Console.WriteLine("Hello World!"); } } }
Console.Writeや、Console.WriteLineもあります。
Console.WriteLineとConsole.Out.WriteLineは同じ。
Console.WriteLineは内部で、Console.Out.WriteLineを呼んでいるだけのようです。
リファレンス実装は下記リンクに https://referencesource.microsoft.com/#mscorlib/system/console.cs,5ac7c4fda643413b,references
Documentは下記リンクに docs.microsoft.com
標準エラー出力
標準エラー出力はConsole.Error
プロパティを利用しましょう。
using System; namespace example_stderr { class Program { static void Main(string[] args) { Console.Error.WriteLine("Hello World!"); } } }
これもすごく簡単!
Documentは下記リンクに docs.microsoft.com
色を変えてみよう
BackgroundColorと、ForegroundColorを設定するだけ。 表示色を元に戻す場合は、ResetColorメソッドを利用する。
using System; namespace example_stderr { class Program { static void Main(string[] args) { Console.BackgroundColor = ConsoleColor.Green; Console.ForegroundColor = ConsoleColor.White; Console.Error.WriteLine("標準エラー出力"); Console.ResetColor(); Console.BackgroundColor = ConsoleColor.Black; Console.ForegroundColor = ConsoleColor.White; Console.Out.WriteLine("標準出力"); Console.ResetColor(); } } }
結果
Consoleでも実行
ConsoleColorは16色
リファレンス実装はこちら
https://referencesource.microsoft.com/#mscorlib/system/consolecolor.cs,9fafce1e8582bc16