.net 9.0'daki yenilikler [6]: Konsol harcamaları için yeni kaçış işareti

Womanne

Member
Eski VT100/ANSI-ESCAPE kodlarıyla, konsol uygulamalarında 24 bit renk, lipit, alt çizgi, seyrek ve flaş dahil çok sayıda format hâlâ etkinleştirilebiliyor. VT100/ANSI kodları kaçış işaretiyle başlatılır (ASCII işareti 27, onaltılık: 0x1b).


Duyuru








Doktor Holger Schwichtenberg, 53 tanınmış uzmanıyla çok sayıda orta ve büyük şirkete danışmanlık, eğitim ve yazılım geliştirme konularında destek veren www.it Visions.de uzman ağının teknik direktörüdür. Holger Schwichtenberg, çok sayıda ulusal ve uluslararası uzmanlık konferansına katılmasının yanı sıra 90'ın üzerinde uzmanlık kitabı ve 1.500'ün üzerinde uzmanlık makalesi sayesinde Almanya'da .NET ve Web teknikleri konusunda en iyi uzmanlardan biridir.







C# 13.0'dan önce bu ASCII 27 çıkış işaretini .NET konsol uygulamalarında kullanabiliyordunuz. Console.WriteLine() Ekspres sadece hantal u001b,, U0000001b VEYA x1bher ne kadar ikincisi önerilmese de: “Escape kullanırsanız , Escapes'in bir parçası olarak yorumlanır.

Tipik olarak, C# 13.0'dan önce VT100/ANSI-ESCAPE kodlarıyla yapılan harcamalar şu şekildeydi:


Console.WriteLine("This is a regular text");
Console.WriteLine("u001b[1mThis is a bold textu001b[0m");
Console.WriteLine("u001b[2mThis is a dimmed textu001b[0m");
Console.WriteLine("u001b[3mThis is an italic textu001b[0m");
Console.WriteLine("u001b[4mThis is an underlined textu001b[0m");
Console.WriteLine("u001b[5mThis is a blinking textu001b[0m");
Console.WriteLine("u001b[6mThis is a fast blinking textu001b[0m");
Console.WriteLine("u001b[7mThis is an inverted textu001b[0m");
Console.WriteLine("u001b[8mThis is a hidden textu001b[0m");
Console.WriteLine("u001b[9mThis is a crossed-out textu001b[0m");
Console.WriteLine("u001b[21mThis is a double-underlined textu001b[0m");
Console.WriteLine("u001b[38;2;255;0;0mThis is a red textu001b[0m");
Console.WriteLine("u001b[48;2;255;0;0mThis is a red backgroundu001b[0m");
Console.WriteLine("u001b[38;2;0;0;255;48;2;255;255;0mThis is a blue text with a yellow backgroundu001b[0m");



C# 13.0 artık orada olduğundan e ASCII kaçış işareti 27'nin kısa biçimi olarak, dizenin sonuçları çok daha kompakt ve net hale gelecek şekilde:


Console.WriteLine("This is a regular text");
Console.WriteLine("e[1mThis is a bold texte[0m");
Console.WriteLine("e[2mThis is a dimmed texte[0m");
Console.WriteLine("e[3mThis is an italic texte[0m");
Console.WriteLine("e[4mThis is an underlined texte[0m");
Console.WriteLine("e[5mThis is a blinking texte[0m");
Console.WriteLine("e[6mThis is a fast blinking texte[0m");
Console.WriteLine("e[7mThis is an inverted texte[0m");
Console.WriteLine("e[8mThis is a hidden texte[0m");
Console.WriteLine("e[9mThis is a crossed-out texte[0m");
Console.WriteLine("e[21mThis is a double-underlined texte[0m");
Console.WriteLine("e[38;2;255;0;0mThis is a red texte[0m");
Console.WriteLine("e[48;2;255;0;0mThis is a red backgrounde[0m");
Console.WriteLine("e[38;2;0;0;255;48;2;255;255;0mThis is a blue text with a yellow backgrounde[0m");








Önceki iki listenin çıktısı aynı görünüyor.


(Resim: Ekran görüntüsü (Holger Schwichtenberg))




(RME)
 
Üst