Console也要美顏了,來給Console添色彩


  我們在開發過程中,經常需要將信息用不同的顏色標記出來,這可以讓我們快速關注到重點信息。想必大家都知道,可以通過Console. ForegroundColor設置輸出文字的顏色,背景顏色可以通過Console. BackgroundColor去改變。但實際使用起來卻非常繁瑣。每輸出一段文字就得改變一次顏色,否則整版都是一個色,不能突出重點。

  最近發現一個叫Shotgun.ColorConsole的庫類,可以避免這種糟糕的情況 。ColorConsole使用顏色標記的方式去控制Console的顏色輸出,從而避免了像原生的Console一樣反復修改顏色屬性。例如:

Shotgun.ColorConsole.ColorConsole.WriteLine("$R The foreground color is red");

  等效於: 

var old=Console.ForegroundColor;
Console.ForegroundColor=Console.Red;
Console.WriteLine("The foreground color is red");
Console.ForegroundColor=old;

  通過以上代碼的展示相信你已經猜到了,$R是用來控制輸出文字的顏色。事實上也的確如此。在默認情況下使用“$”標識修改前景色,“@”標識修改背影色,緊跟在標記后面一個字符則表示顏色值,如上例中的R則代表ConsoleColor.Red。

       ColorConsole的顏色控制語法有兩種,一種是整體顏色標識;另一種則是區間顏色標識。 

       整體顏色標識:

       這種標識沒有結束標記,通常自標識起至結束顏色都是一樣的,除非又使了其他的顏色標識。本文第一個示例使用的就是這種語法。

       區間顏色標識:

       在整體顏色標識基礎上增加一對中括號就成了區間顏色標識。中括號內的文字將以指定的顏色顯示,括號外的文字將用原來的顏色顯示。而且括號還可以多層的嵌套。

//區間顏色輸出控制
ColorConsole.WriteLine("今天是:$G[{0:yyyy-MM-dd}],時間是:@y[{0:HH:mm:ss}]",DateTime.Now);

  ColorConsole還提供了注入方法,這可以讓System.Console支持這種有顏色的語法。

ColorConsole.Inject();
Console.WriteLine("@w$R Hello $G[Color] @B[Console]!");

  顏色語法中的色值與ConsoleColor按以下關系進行映射(小寫表示Drak Color):

  • r => ConsoleColor.DarkRed
  • R => ConsoleColor.Red
  • g => ConsoleColor.DarkGreen
  • G => ConsoleColor.Green
  • b => ConsoleColor.DarkBlue
  • B => ConsoleColor.Blue
  • c => ConsoleColor.DarkCyan
  • C => ConsoleColor.Cyan
  • y => ConsoleColor.DarkYellow
  • Y => ConsoleColor.Yellow
  • m => ConsoleColor.DarkMagenta
  • M => ConsoleColor.Magenta
  • w => ConsoleColor.Gray (Dark White)
  • W => ConsoleColor.White
  • a => ConsoleColor.DarkGray
  • A => ConsoleColor.Black 

  有需要的同學可以通過以下兩種方式獲取:

  GitHub:https://github.com/cbanor/ColorConsole

  NuGet - Package Manager : Install-Package Shotgun.ColorConsole


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM