وحدة التحكم .NET الممتدة مع تلوين microsyntax ، تعليم متعدد الأليفة ، الكتابة إلى الموضع والأكثر مفيدة. تم تصميمه مع التركيز على الأداء للاستخدام المهني في المهام المعقدة: عدد كبير من السجلات غير المتزامنة ، مع الحاجة إلى تسليط الضوء على بيانات الملخص الهامة والثانية. يعد Xconsole آمنًا لعملية تعدد المهام ، وآمنة لتفوق العازلة على وحدة التحكم (9000+ سطر) ، سهلة الاستخدام.
تظهر الميزات الرئيسية في الصورة التالية:
بواسطة Package Manager أو عن طريق إضافة مرجع الحزمة إلى ملف *.csproj. المزيد من الطرق انظر في معرض Nuget.
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` لتغيير ألوان النص والخلفية B` TB` مساحة في البداية) لتغيير لون الخلفية فقط. لجعل رسالة متعددة الألوان تقسمها إلى أجزاء مع بادئات الألوان الفردية ونقلها إلى طريقة 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 . يمكن أن يكون النص المثبت ثابتًا أو ديناميكيًا ، ويحتوي على خط أو أكثر ، وبالطبع يمكن تلوينه. سيتم تحديث الدبوس الديناميكي تلقائيًا في كل مرة يتم فيها استدعاء أساليب 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 يمكنك أيضًا تحديث دبوس ديناميكي يدويًا باستخدام طريقة UpdatePin . لإزالة دبوس ، اتصل بالطريقة Unpin .
Console . UpdatePin ( ) ; // Update dynamic pin manually
Console . Unpin ( ) ; // Remove pin يوفر XConsole بنية ConsolePosition ، وهو موضع داخل منطقة العازلة وحدة التحكم. هذه ميزة مهمة إذا كان لديك الكثير من رسائل السجل. هذا الهيكل مقاوم لتدفق العازلة (9000+ خط السجل) ويشير دائمًا إلى الموضع الصحيح داخل منطقة العازلة. كل طريقة Write WriteLine تُرجع موقفًا مبتدئًا ونهاية. يمكنك حفظها واستخدامها لاحقًا لإعادة كتابة النص أو إضافة نص إلى نهاية الرسالة. للقيام بذلك ، ConsolePosition له طريقة Write الخاصة به ، والتي تُرجع منصبًا جديدًا.
ناب الموقف النهائي 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 مرخصة بموجب ترخيص معهد ماساتشوستس للتكنولوجيا.