Extended .NET Console dengan pewarnaan microsyntax, multiline pinning, write-to-position dan utils paling berguna. Ini dirancang dengan fokus pada kinerja untuk penggunaan profesional dalam tugas -tugas kompleks: sejumlah besar log asinkron, dengan kebutuhan untuk menyoroti data ringkasan penting dan pin. Xconsole aman untuk multitasking, aman untuk overflow buffer konsol (9000+ baris), mudah digunakan.
Fitur utama ditampilkan pada gambar berikut:
Oleh Manajer Paket atau dengan menambahkan referensi paket ke file *.csproj. Lebih banyak cara melihat di Galeri Nuget.
PM> Install-Package XConsole
< PackageReference Include = " XConsole " Version = " 1.5.* " /> Cara sederhana untuk mulai menggunakan xconsole adalah dengan menambahkan using kode Anda. Setelah itu Anda dapat menulis Console seperti biasa dan mendapatkan semua fitur XConsole. Atau, Anda dapat meningkatkan seluruh proyek ke Xconsole sekaligus dengan menambahkan baris berikut ke file *.csproj.
// Safely upgrade a single code file to XConsole
using Console = Chubrik . XConsole . XConsole ; < ItemGroup >
<!-- Safely upgrade an entire project to XConsole -->
< Using Include = " Chubrik.XConsole " />
< Using Include = " Chubrik.XConsole.XConsole " Alias = " Console " />
</ ItemGroup > Trik ini sangat bagus untuk meningkatkan aplikasi konsol reguler yang ada karena Xconsole kompatibel dengan konsol standar. Setelah peningkatan, aplikasi tidak akan mengubah cara kerjanya kecuali Anda ingin mulai menggunakan fitur XConsole.
Untuk mewarnai teks dengan warna konsol standar, Anda perlu menambahkan awalan ke string. Awalannya terdiri dari satu atau dua huruf yang menunjukkan warna, diikuti dengan karakter ` trailing, setelah itu teks segera dimulai. Mari kita tunjukkan huruf warna teks sebagai t dan huruf warna latar belakang sebagai b . Dalam hal ini, ada tiga pola awalan: T` untuk hanya mengubah warna teks, TB` untuk mengubah warna teks dan latar belakang, B` (ruang di awal) untuk hanya mengubah warna latar belakang. Untuk membuat pesan multicolor membaginya menjadi bagian -bagian dengan awalan warna individual dan meneruskannya ke metode WriteLine tunggal. Pastikan pesan Anda tidak akan rusak oleh utas lain.
Console . WriteLine ( "G`This line is colored using simple microsyntax" ) ; // Single color
Console . WriteLine ( [ "C`It is easy " , "Wb`to use many" , "R` colors in " , "Y`one message" ] ) ; // MulticolorTabel berikut menunjukkan semua warna konsol standar dan penunjukan suratnya:
Jika Anda menjalankan aplikasi Anda di Windows 10+ dengan .NET 5+, warna yang diperluas tersedia untuk Anda:
using Chubrik . XConsole . StringExtensions ;
// Different ways to the same 24-bit color
Console . WriteLine ( "Orange text" . Color ( Color . Orange ) ) ; // Color structure
Console . WriteLine ( "Orange text" . Color ( 255 , 165 , 0 ) ) ; // Red, green & blue
Console . WriteLine ( "Orange text" . Color ( 0xFFA500 ) ) ; // Hexadecimal number
Console . WriteLine ( "Orange text" . Color ( "#FFA500" ) ) ; // Hexadecimal string
// Combinations of text and background colors
Console . WriteLine ( "Orange with an indigo background" . Color ( Color . Orange ) . BgColor ( Color . Indigo ) ) ;
Console . WriteLine ( ( "Lime with " + "a brown" . BgColor ( Color . Brown ) + " background" ) . Color ( Color . Lime ) ) ;
Console . WriteLine ( $ "Aqua with { "a navy" . BgColor ( Color . Navy ) } background" . Color ( Color . Aqua ) ) ; Xconsole mendukung standar NO_COLOR dengan variabel lingkungan dan dengan properti.
Console . NO_COLOR = true ; // Disable all colors Anda dapat menyematkan beberapa teks di bawah pesan log biasa dengan metode Pin . Teks yang disematkan bisa statis atau dinamis, berisi satu atau lebih garis, dan tentu saja dapat diwarnai. Pin dinamis akan diperbarui secara otomatis setiap kali metode Write atau WriteLine dipanggil. PIN tahan terhadap pembungkus garis dan untuk konsol buffer overflow (9000+ Log Lines).
Console . Pin ( "Simple static pin" ) ; // Simple static pin
Console . Pin ( [ "Y`Multicolor" , " static pin" ] ) ; // Multicolor static pin
Console . Pin ( "Multiline n static pin" ) ; // Multiline static pin
Console . Pin ( ( ) => "Simple pin, value=" + value ) ; // Simple dynamic pin
Console . Pin ( ( ) => [ "Y`Multicolor" , " pin, value=" , "C`" + value ] ) ; // Multicolor dynamic pin
Console . Pin ( ( ) => [ "Multiline pin, n value=" , "C`" + value ] ) ; // Multiline dynamic pin Anda juga dapat memperbarui pin dinamis secara manual menggunakan metode UpdatePin . Untuk menghapus pin, hubungi metode Unpin .
Console . UpdatePin ( ) ; // Update dynamic pin manually
Console . Unpin ( ) ; // Remove pin Xconsole menyediakan struktur ConsolePosition , yang merupakan posisi dalam area buffer konsol. Ini adalah fitur penting jika Anda memiliki banyak pesan log. Struktur ini tahan terhadap overflow buffer konsol (garis log 9000+) dan selalu menunjuk ke posisi yang benar dalam area buffer konsol. Setiap metode Write dan WriteLine mengembalikan posisi awal dan akhir. Anda dapat menyimpannya dan menggunakannya nanti untuk menulis ulang teks atau menambahkan teks ke akhir pesan. Untuk melakukan ini, ConsolePosition memiliki metode Write sendiri, yang mengembalikan posisi akhir yang baru.
NB! Posisi akhir dari WriteLine berarti posisi setelah karakter terakhir sebelum garis istirahat.
var ( begin , end ) = Console . WriteLine ( "Hello, World!" ) ; // Write message and save positions
begin . Write ( "C`HELLO" ) ; // Rewrite part of text
end = end . Write ( " I'm here" ) ; // Add text to the end and update end position
end . Write ( "Y`!" ) ;
Anda juga bisa mendapatkan atau mengatur posisi kursor menggunakan properti CursorPosition :
ConsolePosition position = Console . CursorPosition ; // Get cursor position
Console . CursorPosition = new ConsolePosition ( left : 15 , top : 5 ) ; // Set cursor position Readline memiliki dua mode tambahan untuk input yang aman: bertopeng dan disembunyikan. Simbol topeng dapat disesuaikan.
Console . ReadLine ( ConsoleReadLineMode . Masked ) ; // Masked ReadLine
Console . ReadLine ( ConsoleReadLineMode . Masked , maskChar : '#' ) ; // Masked ReadLine with custom mask
Console . ReadLine ( ConsoleReadLineMode . Hidden ) ; // Hidden ReadLine Xconsole dilisensikan di bawah lisensi MIT.