是否有可能在.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(); } } }