Farverig konsol applikation

by Jesper august 06, 2009 11:27

Når jeg laver en konsol applikation, er det for det meste for at udfører en eller anden batch, eller for at overvåge et eller andet. Og næsten altid; skriver jeg en bunke info ud til konsollen, via Console.WriteLine. Det kan bare somme tider være lidt uoverskuligt, at se på al den tekst output, og man savner de gode gamle dage, hvor man på sin Amiga 500 kunne skrive: print(“Hello world”, Color(255000255)). For så at få skrevet sit budskab ud i lilla. Hvad gør man lige i .NET?

Det er langt mere overskueligt at skrive sine exceptions ud i rød, end at lade dem forsvinde i strømmen af hvide Ascii karakterer. Googling på nettet giver en lang række forslag, hvor man skal lave dll-import af kernel32.dll osv., men det viser sig at løsningen ligger lige foran snuden på mig. Console klassen har en statisk property: ForegroundColor. Hvis man f.eks. sætter den til: ConsoleColor.Red, så udskriver den næste linie i farven?

Ja – andet er der ikke i det. Man kan jo ikke lave extension metoder på en statisk klasse, er man nød til at lave en lille metode på sin programklasse, for ikke helt at rode farverne sammen:

public static void WriteLine(string value, ConsoleColor color)
{
    var oldColor = Console.ForegroundColor;
    Console.ForegroundColor = color;
    Console.WriteLine(value);
    Console.ForegroundColor = oldColor;
}

Det havde været dejligt at kunne pakke det væk i en extension eller en handler, men det kan vel gå.

Code on…

Tags:

Tip

Kommentarerne er lukkede

Powered by BlogEngine.NET 1.5.0.7
Theme by Mads Kristensen | Modified by Mooglegiant

About

Mit navn er Jesper Jensen, og jeg arbejder til dagligt som web-udvikler hos DGI, hvor mit speciale er klientside applikationer. Før det var jeg nogle år i robotbranchen, hvor jeg arbejdede med 3D simulering og system koordinering. Jeg elsker webudvikling, og specielt JavaScript har min interesse. Jeg har blogget om mine oplevelser med udvikling siden 2004

Calendar

<<  juli 2010  >>
mationtofr
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

View posts in large calendar

RecentComments

Comment RSS