Console
colorIn a console program, colors can be used. A warning message can be printed on a red background. We set properties on Console
in C#.
On a console, text and background colors can be changed—this sometimes makes programs easier to use. Errors and alerts are more noticeable.
Console
has many static
methods and properties on it. These are static
properties and methods, so they can be directly accessed.
BackgroundColor
property is set to ConsoleColor.Blue
. ForegroundColor
is set to ConsoleColor.White
.BackgroundColor
and ForegroundColor
. These are properties, so we do not call them like methods.ResetColor()
, which is a method. Is resets all colors on the Console
.using System; class Program { static void Main() { // Test colors with blue background, white foreground. Console.BackgroundColor = ConsoleColor.Blue; Console.ForegroundColor = ConsoleColor.White; Console.WriteLine("White on blue."); Console.WriteLine("Another line."); Console.ResetColor(); } }White on blue. Another line.
Writing an entire row of color in the Console
may be helpful. It may make a good separator (like a line). Here we refactor the Console
code into a separate method.
string
, and reset the console.PadRight
the parameter is the Console.WindowWidth
minus one. This returns a string
that will fill up the Console
's width.PadRight
method, it sometimes incorrectly wraps lines.using System; class Program { static void Main() { // Write one green line. WriteFullLine("This line is green."); Console.WriteLine(); // ... Write another green line. WriteFullLine("This line is also green."); Console.WriteLine(); } static void WriteFullLine(string value) { // Write an entire line to the console with the string. Console.BackgroundColor = ConsoleColor.Green; Console.ForegroundColor = ConsoleColor.DarkGreen; Console.WriteLine(value.PadRight(Console.WindowWidth - 1)); // Reset the color. Console.ResetColor(); } }This line is green. This line is also green.
Here we see a program that displays all the backgrounds and foregrounds possible with the Console
. It would be interesting to nest the loops and show all combinations.
ConsoleColor
values. White on blue may evoke memories of the BSOD (Blue Screen of Death).using System; class Program { static void Main() { // Demonstrate all colors and backgrounds. Type type = typeof(ConsoleColor); Console.ForegroundColor = ConsoleColor.White; foreach (var name in Enum.GetNames(type)) { Console.BackgroundColor = (ConsoleColor)Enum.Parse(type, name); Console.WriteLine(name); } Console.BackgroundColor = ConsoleColor.Black; foreach (var name in Enum.GetNames(type)) { Console.ForegroundColor = (ConsoleColor)Enum.Parse(type, name); Console.WriteLine(name); } } }Black DarkBlue DarkGreen DarkCyan DarkRed DarkMagenta DarkYellow Gray DarkGray Blue Green Cyan Red Magenta Yellow White Black DarkBlue DarkGreen DarkCyan DarkRed DarkMagenta DarkYellow Gray DarkGray Blue Green Cyan Red Magenta Yellow White
Colors are not always the best formatting option. Try focusing on the structure of your output, with padding. We can make columns of text.
Colors, even on consoles, are beautiful. We used Console
colors, including BackgroundColor
and ForegroundColor
. ResetColor
and Console.WindowWidth
are helpful.