.NET 9.0'daki haberler [6]: Konsol çıkışı için yeni kaçış karakteri

Adanali

Member
Antik Kaçış VT100/ANSI kodları, konsol uygulamalarında 24 adet renk, kalın, altı çizili, çubuklu ve yanıp sönen çeşitli formatları etkinleştirmek için kullanılabilir. VT100/ANSI kodları kaçış karakteri (ASCII Karakter 27, Hexadecimal: 0x1b) tarafından tanıtılır.


Duyuru








Holger Schwichtenberg, 53 ünlü uzmanla, yazılımın eğitimi, eğitimi ve geliştirilmesi yoluyla çok sayıda orta ve büyük şirketi destekleyen uzmanlar ağının teknik direktörüdür. Çok sayıda ulusal ve uluslararası konferansın yanı sıra 90'dan fazla uzman kitabı ve 1.500'den fazla uzman makaleye katılımı sayesinde Holger Schwichtenberg, Almanya'daki .NET ve Web Technologies'deki en iyi bilinen uzmanlardan biridir.







C# 13.0'dan önce .NET konsol uygulamalarında ASCII 27 kaçışını gerçekleştirmek mümkün oldu Console.WriteLine() Sadece garip bir şekilde ifade et u001b– U0000001b VEYA x1bİkincisi önerilmese de: “Kaçış x dizisini kullanıyorsanız, dört onaltılık basamak belirtin ve kaçış dizisini takip eden karakterler geçerli onaltılık rakamlar (örneğin 0-9, AF EA-F), bunlar Kaçış dizisinin bir parçası olarak yorumlanır.

Genel olarak, C# 13.0'dan önce VT100/ANSI kaçış kodlarıyla çıktı aşağıdakilere benzer:


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'dan şimdi var e Kaçış Ascii 27 karakteri için kısaltılmış bir form olarak, karakter dizeleri çok daha kompakt ve net hale gelir:


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 (Holger Schwichtenberg)))




(Ben)
 
Üst