.NET 9.0'da yeni [6]: Konsol alışverişi için yeni kaçış işareti

Womanne

Member
Antik VT100/ANSI-harap kodları ile, 24 bit renkler, lipitler, altını çizme, dağınık ve flaş dahil olmak üzere konsol uygulamalarında çok sayıda format etkinleştirilebilir. VT100/ANSI kodları kaçış işareti ile başladı (ASCII Sign 27, Esenadepimal: 0x1b).








Holger Schwichtenberg, 53 ünlü uzmanla tavsiye ve eğitim yoluyla ve yazılımın geliştirilmesinde ç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ı uzman konferansındaki görünümleri, 90'dan fazla uzman kitabı ve 1.500'den fazla uzman makalesi sayesinde Holger Schwichtenberg, Almanya'daki .NET ve Web teknikleri için en iyi uzmanlardan biridir.







C# 13.0'dan önce bu ASCII 27 Kaçış Oturumunu ENT Konsol Uygulamalarında Kullanabilirsiniz Console.WriteLine() Sadece hantal ifade et u001b,, U0000001b VEYA x1bBu nedenle ikincisi önerilmez: ” x kaçışını kullanırsanız, kaçakçılığın üretimini (örn. 0-9, a – fea – f) hemen takip eden dörtten az onaltılık rakam ve işaretler gösterir, bunlar dördü de yorumlanır (örn. X00A1).

Genel olarak, C# 13.0'dan önce VT100/ANSI-I-ICAPE kodları ile masraflar:


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");



Şimdi orada olduğu için e ASCII 27 kaçış işareti için kısa bir şekil olarak, dizenin sonuçları çok daha kompakt ve daha 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 görüntüsü (Holger Schwichtenberg))




(RME)
 
Üst