مهمة إنشاء رموز رقمية متسلسلة لترقيم الرسائل في التعليمات البرمجية المصدر في Visual Studio (على سبيل المثال ، C #)

مرحبا بالجميع


اسمحوا لي أن أشاطركم اختراقًا صغيرًا للحياة كنت أستخدمه بنجاح لمدة عامين تقريبًا - إنشاء رموز رقمية متسلسلة للرسائل النصية في التعليمات البرمجية المصدر في عملية تحرير الشفرة المصدرية مباشرةً في Visual Studio:

صورة

بدأت أفكر في هذه المهمة عندما بدأت عشرات الرسائل الموجهة إلى معالجات المستخدم / الخطأ / الاستثناء "بالتكوين" في الكود وأصبح من المستحيل تحمل حقيقة أنه عند تلقي الرسالة التالية في وقت التشغيل ، أصبح من الصعب التنقل من أين أتت. كانت هناك رغبة قوية في ترقيم جميع الرسائل بفهارس متتالية سيتم عرضها في بداية كل رسالة ، ولكن حتى يمكن إنشاء هذا التسلسل أثناء كتابة التعليمات البرمجية المصدر باستخدام لوحة المفاتيح فقط ، أثناء التنقل (لا يجب صرفها عن عملية الترميز).

صورة

ويتم ذلك على النحو التالي:

  1. إنشاء التعداد لرموز الخطأ.
  2. بناء جملة خاص للرموز في التعداد: "_number". (في بداية الرقم يوجد تسطير سفلي ، لأن التعداد لا يزال يتطلب أسماء رمزية).
  3. "محول الأرقام" من التنسيق "_number" في الرقم الفعلي.
  4. سحر زيادة رمز رقمي على الطاير.

1،2:


/// " "    public enum MCodes{ _000, _001, _002, } 

3: "محول الأرقام" من التنسيق "_number" في الرقم الفعلي


 static class _MCodeExtensions{ /// mini formar error message -    . public static string mfem(this MCodes mcode) { //string str = $"{nameof(rcode)} = {rcode}, {nameof(mcode)} = {mcode}"; int val = Int32.Parse(mcode.ToString().Substring(1)); string str = $"{nameof(mcode)} = {val}"; return str; } } 

4. السحر


السحر هو استخدام ميزات IntelliSense لبرنامج Visual Studio:

صورة


في الواقع ، يتم تنفيذ هذه الإجراءات بسرعة كبيرة (حركة بطيئة):

صورة


استخدام


نادراً ما يتم استخدام الأرقام المسطر "عادة" في الكود المصدر ، لذلك فإن العثور على هذا الرقم باستخدام Ctrl-F (البحث في الملف الحالي) أو Ctrl-Shift-F (البحث في المشروع بأكمله) سيشير بدقة إلى مكان الخطأ.

(بالطبع ، يمكنك فتح التعداد ، والعثور على الكود ، اضغط على Shift-F12 ، ولكن هذا هو الطريق الطويل الصحيح من التفريغ ...)

القصور


1. إذا قمت بنسخ أجزاء من الكود برموز خطأ مدرجة ، فلن تكون رموز الخطأ فريدة من نوعها. لمكافحتهم ، تحتاج إلى مراجعة تعداد MCodes بشكل دوري مع التحقق من عدم استخدام بعض الأكواد أكثر من مرة
صورة


اختصارات F12 و Shift-F12 تساعد كثيرا.

2. يمكنك أن ترتكب خطأً في التنسيق الذي تم الاتصال به ولا تكتب "رقم" ، ولكن شيء آخر لا يمكن تحويله إلى رقم. نعم ، سيكون هناك استثناء.

استنتاج


في بعض الأحيان ، يوفر ترقيم الرسائل ، وخاصة حول الأخطاء ، خدمة لا تقدر بثمن في تصحيح الأخطاء والبحث عن أسباب ظهور رسائل مختلفة. آمل أن تساعد هذه الطريقة في تبسيط هذه المهمة.

يبدو أن هذا هو الحد الأدنى من حركات الجسم؟

PS


هذا هو موقفي الذاتي للغاية لرموز الخطأ ، ولكن فجأة سيساعدك في شيء ما. يمكن استخدامه ليس فقط لزيادة رموز الخطأ ، ولكن أيضًا للتسلسلات الأخرى. وبطبيعة الحال ، التخصيص من الحل لذوقك.

سبب استخدام تنسيق الأرقام في التعداد كـ "_number" هو أن int مخفي بالفعل وراء التعداد ، ويتم ترقيم عضو التعداد من بداية التسلسل (يمكن تعيينه بناءً على ذلك ، ولكن لا يتم ذلك تلقائيًا من خلال IntelliSense ، ولا يتعين عليك قضاء الوقت عليه أريد أن). وأيضا معنى هذا العضو يعتمد على الموقع. وإذا تغير الموقع ، فسيكون الرقم مختلفًا بالفعل. لذلك ، يتم تجاهل القيمة نفسها في كل مكان في التعليمات البرمجية.

وهناك القليل من النظرية حول Enum Enums .

Source: https://habr.com/ru/post/ar461125/


All Articles