在C#中如何获取当前控制台的前景色与背景色?
获取控制台当前前景色与背景色并恢复的方法
嘿,其实获取当前控制台的前景色和背景色超简单!你只需要直接读取System.Console.ForegroundColor和System.Console.BackgroundColor这两个属性就可以了——它们会直接返回当前控制台正在使用的颜色值。
针对你写的ColorLine方法,只需要在修改颜色前先保存原始的前景色,输出完成后再把颜色改回去就行。我帮你把方法完善了一下:
public void ColorLine(string line, System.ConsoleColor foreground) { // 保存原始前景色 var originalForeground = System.Console.ForegroundColor; try { // 修改前景色 System.Console.ForegroundColor = foreground; // 输出文本 System.Console.WriteLine(line); } finally { // 无论是否发生异常,都恢复原始颜色 System.Console.ForegroundColor = originalForeground; } }
这里加了try...finally块是为了保证哪怕输出过程中出现异常,控制台的颜色也能恢复到原来的状态,避免之后的控制台输出颜色一直不对哦。
如果之后你需要处理背景色的话,逻辑也是一样的:先保存System.Console.BackgroundColor,修改后再恢复就行。
内容的提问来源于stack exchange,提问作者ex-vi
相关产品推荐
相关产品推荐

