ขยาย. NET คอนโซลด้วยการระบายสี microsyntax, การปักหลายมัลติไลน์, การเขียนตำแหน่งและการใช้งานที่มีประโยชน์มากที่สุด มันได้รับการออกแบบโดยมุ่งเน้นไปที่ประสิทธิภาพสำหรับการใช้งานระดับมืออาชีพในงานที่ซับซ้อน: บันทึกแบบอะซิงโครนัสจำนวนมากโดยมีความจำเป็นที่จะต้องเน้นข้อมูลสรุปที่สำคัญและ PIN XConsole ปลอดภัยสำหรับการทำงานหลายอย่างปลอดภัยสำหรับคอนโซลบัฟเฟอร์ล้น (9000+ บรรทัด) ใช้งานง่าย
คุณสมบัติหลักจะแสดงในภาพต่อไปนี้:
โดย Package Manager หรือโดยการเพิ่มแพ็คเกจอ้างอิงไปยัง *.csproj ไฟล์ วิธีอื่น ๆ ดูใน Nuget Gallery
PM> Install-Package XConsole
< PackageReference Include = " XConsole " Version = " 1.5.* " /> วิธีง่ายๆในการเริ่มใช้ XConsole คือการเพิ่ม using รหัสของคุณ หลังจากนั้นคุณสามารถเขียน Console ได้ตามปกติและรับคุณสมบัติทั้งหมดของ XConsole หรือคุณสามารถอัพเกรดโครงการทั้งหมดเป็น Xconsole ได้ในครั้งเดียวโดยการเพิ่มบรรทัดต่อไปนี้ไปยังไฟล์ *.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 > เคล็ดลับนี้เหมาะสำหรับการอัพเกรดแอปพลิเคชันคอนโซลปกติที่มีอยู่เนื่องจาก XConsole นั้นเข้ากันได้กับคอนโซลมาตรฐาน หลังจากการอัพเกรดแอปพลิเคชันจะไม่เปลี่ยนวิธีการทำงานเว้นแต่คุณต้องการเริ่มใช้คุณสมบัติ XConsole
ในการระบายสีข้อความด้วยสีคอนโซลมาตรฐานคุณต้องเพิ่มคำนำหน้าลงในสตริง คำนำหน้าประกอบด้วยตัวอักษรหนึ่งหรือสองตัวที่แสดงถึงสีตามด้วย ` ละครต่อท้ายหลังจากนั้นข้อความจะเริ่มขึ้นทันที มาแสดงถึงตัวอักษรสีข้อความเป็น T และตัวอักษรสีพื้นหลังเป็น b ในกรณีนี้มีรูปแบบคำนำหน้าสามรูปแบบ: T` ในการเปลี่ยนเฉพาะสีข้อความ TB` เพื่อเปลี่ยนสีและสีพื้นหลัง B` (พื้นที่ที่จุดเริ่มต้น) เพื่อเปลี่ยนสีพื้นหลังเท่านั้น เพื่อให้ข้อความหลากสีแยกเป็นชิ้นส่วนที่มีคำนำหน้าสีแต่ละสีและส่งผ่านไปยังวิธี WriteLine เดี่ยว ตรวจสอบให้แน่ใจว่าข้อความของคุณจะไม่ถูกทำลายโดยเธรดอื่น
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" ] ) ; // Multicolorตารางต่อไปนี้แสดงสีคอนโซลมาตรฐานทั้งหมดและการกำหนดตัวอักษรของพวกเขา:
หากคุณกำลังใช้งานแอปพลิเคชันของคุณบน Windows 10+ ด้วย. NET 5+ จะมีสีขยายให้คุณ:
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 รองรับมาตรฐาน NO_COLOR ด้วยตัวแปรสภาพแวดล้อมและด้วยคุณสมบัติ
Console . NO_COLOR = true ; // Disable all colors คุณสามารถตรึงข้อความบางข้อความด้านล่างข้อความบันทึกปกติด้วยวิธี Pin ข้อความที่ถูกตรึงอาจเป็นแบบคงที่หรือแบบไดนามิกมีหนึ่งบรรทัดขึ้นไปและแน่นอนสามารถเป็นสีได้ PIN แบบไดนามิกจะได้รับการอัปเดตโดยอัตโนมัติทุกครั้งที่มีการเรียกวิธี Write หรือ WriteLine PIN ทนทานต่อการห่อเส้นและไปยังคอนโซลบัฟเฟอร์ล้น (บรรทัดบันทึก 9000+)
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 นอกจากนี้คุณยังสามารถอัปเดต PIN แบบไดนามิกด้วยตนเองโดยใช้เมธอด UpdatePin หากต้องการลบพินให้เรียกใช้วิธี Unpin
Console . UpdatePin ( ) ; // Update dynamic pin manually
Console . Unpin ( ) ; // Remove pin XConsole จัดเตรียมโครงสร้าง ConsolePosition ซึ่งเป็นตำแหน่งภายในพื้นที่บัฟเฟอร์คอนโซล นี่เป็นคุณสมบัติที่สำคัญหากคุณมีข้อความบันทึกจำนวนมาก โครงสร้างนี้ทนทานต่อการล้นบัฟเฟอร์คอนโซล (บรรทัดบันทึก 9000+) และชี้ไปที่ตำแหน่งที่ถูกต้องภายในพื้นที่บัฟเฟอร์คอนโซลเสมอ วิธี Write และ WriteLine แต่ละครั้งจะส่งคืนตำแหน่งเริ่มต้นและสิ้นสุด คุณสามารถบันทึกและใช้ในภายหลังเพื่อเขียนข้อความหรือเพิ่มข้อความลงในตอนท้ายของข้อความ ในการทำเช่นนี้ ConsolePosition มีวิธี Write ของตัวเองซึ่งส่งคืนตำแหน่งสิ้นสุดใหม่
NB ตำแหน่งสิ้นสุดของ WriteLine หมายถึงตำแหน่งหลังจากตัวละครสุดท้าย ก่อนที่ จะหยุดบรรทัด
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`!" ) ;
นอกจากนี้คุณยังสามารถรับหรือตั้งค่าตำแหน่งเคอร์เซอร์โดยใช้คุณสมบัติ CursorPosition :
ConsolePosition position = Console . CursorPosition ; // Get cursor position
Console . CursorPosition = new ConsolePosition ( left : 15 , top : 5 ) ; // Set cursor position Readline มีสองโหมดเพิ่มเติมสำหรับการป้อนข้อมูลที่ปลอดภัย: สวมหน้ากากและซ่อนเร้น สัญลักษณ์หน้ากากสามารถปรับแต่งได้
Console . ReadLine ( ConsoleReadLineMode . Masked ) ; // Masked ReadLine
Console . ReadLine ( ConsoleReadLineMode . Masked , maskChar : '#' ) ; // Masked ReadLine with custom mask
Console . ReadLine ( ConsoleReadLineMode . Hidden ) ; // Hidden ReadLine XConsole ได้รับใบอนุญาตภายใต้ใบอนุญาต MIT