使用顏色標記的方式來控制Console的顏色輸出,讓Console顏色輸出不再繁瑣。 ...
我們在開發過程中,經常需要將不同的信息用顏色標記出來,這可以讓我們快速關註到重點信息。想必大家都知道,可以通過Console. ForegroundColor設置輸出文字的顏色,背景顏色可以通過Console. BackgroundColor去改變。但實際使用起來卻非常繁瑣。每輸出一段文字就得改變一次顏色,否則整版都是一個色,不能突出重點。
為了避免這種糟糕的情況,本人編寫了類庫:ColorConsole 。使用顏色標記的方式來控制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