Console WriteLine で色を変える。

そういや、xp あたりからエスケープシーケンスがデフォルトでは使えないんだっけ、とか思いつつ。
(NT以降の32BitのWindowsらしい)

Console クラスは static だったので拡張できず残念。
出来るように言語拡張してくれないかな。

public static void ConsoleWriteLine( ConsoleColor foreColor, string format, params object[] arg ) {
  ConsoleColor defaultForeColor = Console.ForegroundColor;
  Console.ForegroundColor = foreColor;
  Console.WriteLine( format, arg );
  Console.ForegroundColor = defaultForeColor;
}

public static void ConsoleWriteLine(
  ConsoleColor foreColor, ConsoleColor backColor, string format, params object[] arg
) {
  ConsoleColor defaultBackColor = Console.BackgroundColor;
  Console.BackgroundColor = backColor;

  ConsoleWriteLine( foreColor, format, arg );

  Console.BackgroundColor = defaultBackColor;
}