是否有可能在.NET中以彩色写入控制台?

编写一个小的命令行工具,这将是很好的输出不同的颜色。 这可能吗?

是。 看到这篇文章 。 这里有一个例子:

Console.BackgroundColor = ConsoleColor.Blue; Console.ForegroundColor = ConsoleColor.White; Console.WriteLine("White on blue."); 

在这里输入图像说明

 class Program { static void Main() { Console.BackgroundColor = ConsoleColor.Blue; Console.ForegroundColor = ConsoleColor.White; Console.WriteLine("White on blue."); Console.WriteLine("Another line."); Console.ResetColor(); } } 

从这里采取。

以上评论都是坚实的回应,但请注意,他们不是线程安全的。 如果你正在写多个线程的控制台,改变颜色将增加一个竞争条件,可以创造一些奇怪的看起来输出。 但修复很简单:

 public class ConsoleWriter { private static object _MessageLock= new object(); public void WriteMessage(string message) { lock (_MessageLock) { Console.BackgroundColor = ConsoleColor.Red; Console.WriteLine(message); Console.ResetColor(); } } }