تحويل العدادات إلى قيم قابلة للقراءة البشرية في C#
العدادات، أو التعدادات، هي “فئة” خاصة في C# تمثل مجموعة من الثوابت. يتم استخدامها على نطاق واسع لتعريف أنواع المتغيرات التي يمكن أن تحتوي على مجموعة محددة مسبقًا من القيم. ومع ذلك، عند العمل مع العدادات، يمكن أن يمثل تحويل أسماءها البرمجية إلى سلاسل نصية قابلة للقراءة البشرية تحديًا. تتناول هذه المقالة هذه المشكلة وتوفر حلًا بسيطًا.
تحدي قراءة العدادات
تخيل أنك لديك تعداد مُعرَّف كما يلي:
public enum SampleEnum
{
ThisIsValueA,
ThisIsValueB,
AnotherValue
}
باستخدام هذا التعداد، إذا كنت بحاجة إلى عرض ThisIsValueA
بطريقة صديقة للمستخدم في تطبيقك، فسوف ترغب في أن يظهر كـ “هذا هو القيمة A”. التحدي يكمن في تحويل هذه التسمية بأسلوب الكاميل إلى نص واضح وقابل للقراءة.
الحل: طريقة Wordify البسيطة
لتحويل قيمة تعداد إلى سلسلة نصية قابلة للقراءة البشرية، يمكننا استخدام طريقة تُسمى Wordify
. تأخذ هذه الطريقة سلسلة تُمرر بتنسيق PascalCase (وهو كيف يتم عادةً تعريف أسماء العدادات) وتفصل الكلمات بمسافات حيثما كان ذلك ضروريًا.
إليك تحليل خطوة بخطوة:
الخطوة 1: تنفيذ طريقة Wordify
يمكنك تنفيذ طريقة Wordify
في كودك كما هو موضح أدناه:
using System.Text.RegularExpressions;
public static string Wordify(string pascalCaseString)
{
Regex regex = new Regex("(?<=[a-z])(?<x>[A-Z])|(?<y>.)(?<x>[A-Z])(?=[a-z])");
return regex.Replace(pascalCaseString, " ${x}");
}
الشرح:
- نمط Regex: يعمل نمط regex من خلال العثور على الحروف الكبيرة التي تسبقها حرف صغير أو تتبعها حرف صغير. يضمن أن تبقى الاختصارات (مجموعات من الحروف الكبيرة) سليمة.
- عبارة العودة: تستبدل هذه الطريقة تلك التطابقات بمساحة متبوعة بالحرف الكبير المطابق، مما يفصلها إلى كلمات واضحة.
الخطوة 2: استخدام طريقة Wordify
لرؤية الطريقة قيد التنفيذ، يمكنك تشغيل الكود التالي:
Console.WriteLine(Wordify(SampleEnum.ThisIsValueA.ToString()));
النتيجة:
ستظهر هذه السطر من الكود النتيجة التالية:
"هذا هو القيمة A"
فوائد استخدام Wordify
- البساطة: إنها حل بسيط يتطلب حدًا أدنى من الكود.
- تجنب السمات: هذه الطريقة أبسط وأقل تكرارًا من تعريف سمات الوصف للعدادات، مما يمكن أن يُعقد كودك دون ضرورة.
- نهج مباشر: يسمح لك بتحقيق أسماء عدادات قابلة للقراءة البشرية دون إضافة عبء إضافي.
الخلاصة
لا يجب أن يكون تحويل العدادات إلى قيم قابلة للقراءة البشرية في C# معقدًا. من خلال تنفيذ طريقة Wordify
، يمكنك بسهولة تحويل أي سلسلة بتنسيق PascalCase إلى تنسيق صديق للمستخدم في بضع سطور من الكود فقط، مما يُحسن من وضوح قابلية الاستخدام في تطبيقاتك. جرب دمج هذه الطريقة في مشروعك القادم لتبسيط عملية عرض قيم العدادات للمستخدمين.