القراء مثلك يساعدون في دعم MUO. عند إجراء عملية شراء باستخدام الروابط الموجودة على موقعنا ، فقد نربح عمولة تابعة. اقرأ أكثر.

Enums هي نوع بيانات مفيد يتيح لك تحديد قائمة بالخيارات المسماة لمتغير. على سبيل المثال ، إذا كنت تريد تخزين كل يوم من أيام الأسبوع ، يمكنك استخدام تعداد لتمثيل القيم الصالحة.

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

يمكنك التصريح عن واستخدام التعداد في العديد من لغات البرمجة ، بما في ذلك C #.

كيفية التصريح عن التعداد في C #

في C # ، ستُلصق عادةً التعدادات على مستوى مساحة الاسم. على سبيل المثال ، في تطبيق وحدة التحكم C # ، يمكنك التصريح عن التعدادات الخاصة بك كخصائص فئة. يمكنك مشاهدة مثال في هذا جيثب ريبو.

فصلبرنامج
{
تعداد يوم من أيام الأسبوع {
الاثنين،
يوم الثلاثاء،
الأربعاء،
يوم الخميس،
جمعة،
السبت،
الأحد
}

ثابتةفارغرئيسي(خيط[] أرجس)
{

}
}

عندما تعلن عن تعداد ، يحصل كل خيار على قيمة عدد صحيح لتمثيل الفهرس الخاص به. بشكل افتراضي ، تحتوي القيمة الأولى في التعداد على فهرس بقيمة 0. لتغيير هذا ، يمكنك تحديد الفهرس الخاص بك للعنصر الأول عند التصريح عن التعداد:

instagram viewer

تعداد يوم من أيام الأسبوع { 
الاثنين = 1,
يوم الثلاثاء،
الأربعاء،
يوم الخميس،
جمعة،
السبت،
الأحد
}

في هذه الحالة ، فهرس العنصر الأول الاثنين يبدأ عند 1. فهرس العنصر التالي يوم الثلاثاء سوف يكون 2، وما إلى ذلك وهلم جرا.

كيفية الوصول إلى قيمة التعداد في C #

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

إحدى الطرق التي يمكنك من خلالها استرداد اسم التعداد هي استخدام Enums. GetName () وظيفة. هذا يحصل على اسم الخيار في الفهرس 5:

خيط الجمعة = Enum. GetName (نوع من(يوم من أيام الأسبوع) ، يوم من أيام الأسبوع. جمعة)؛
وحدة التحكم. اكتب ("الحمد لله" + الجمعة + "!");
// الإخراج = الحمد لله أنه يوم الجمعة!

يمكنك أيضًا الوصول إلى قيمة باستخدام فهرسها. في هذه الحالة ، سيتم تخزين القيمة في الفهرس 2 في تعداد أيام الأسبوع (وهو الثلاثاء) في المتغير:

الثلاثاء من الأسبوع = (يوم من أيام الأسبوع)2;
وحدة التحكم. اكتب ("اليوم هو " + الثلاثاء) ؛
// الإخراج = اليوم هو الثلاثاء

عندما تقوم بتمرير التعداد كحجة إلى وحدة التحكم. اكتب ()، ال إلى سلسلة() يتم تشغيل طريقة التعداد تلقائيًا. هذا يعني أنه بدلاً من طباعة القيمة العددية الحقيقية للتعداد ، وهي 5سوف تطبع قيمة السلسلة ، جمعة.

وحدة التحكم. اكتب (يوم من أيام الأسبوع. الخميس + " هل الجديد " + يوم من أيام الأسبوع. جمعة)؛
// الإخراج = الخميس هو يوم الجمعة الجديد

بامكانك ايضا تحويل أو تحليل نوع البيانات في عدد صحيح كطريقة أخرى لتخزين فهرس الخيار:

int الاثنين الفهرس = (int) يوم من أيام الأسبوع. الاثنين؛
وحدة التحكم. WriteLine (mondayIndex) ؛
// الإخراج = 1

كيفية مقارنة التعدادات في C #

في C # ، يمكنك مقارنة التعداد باستخدام عوامل المقارنة (== ،! = ، ، <= ،> =). سيقارن هذا القيمة الرقمية للخيارات.

يوم من أيام الأسبوع 1 = يوم من أيام الأسبوع. الاثنين؛
يوم من أيام الأسبوع 2 = يوم من أيام الأسبوع. يوم الثلاثاء؛

لو (يوم 1 == يوم 2)
{
وحدة التحكم. اكتب ("الأيام هي نفسها".);
}
آخر
{
وحدة التحكم. اكتب ("الأيام مختلفة".);
}

في هذا المثال ، قيمة Weekday. الإثنين هو 1 ، وقيمة يوم من أيام الأسبوع. الثلاثاء هو 2 ، لذلك فإن 1 == 2 المقارنة ستفشل.

طريقة أخرى لمقارنة التعدادات هي يساوي () طريقة:

لو (day1.Equals (day2))
{
وحدة التحكم. اكتب ("الأيام هي نفسها".);
}
آخر
{
وحدة التحكم. اكتب ("الأيام مختلفة".);
}

بامكانك ايضا استخدم عبارة التبديل C # لمقارنة قيمة مقابل كل خيار في التعداد. في هذا المثال ، سيقع الرمز في حالة الأربعاء:

valueToCompare من أيام الأسبوع = يوم من أيام الأسبوع. الأربعاء؛

يُحوّل (valueToCompare)
{
قضية يوم من أيام الأسبوع. الاثنين:
وحدة التحكم. اكتب ("احتاج قهوة.");
استراحة;
قضية يوم من أيام الأسبوع. يوم الثلاثاء:
وحدة التحكم. اكتب ("احتاج قهوة.");
استراحة;
قضية يوم من أيام الأسبوع. الأربعاء:
وحدة التحكم. اكتب ("احتاج قهوة.");
استراحة;
قضية يوم من أيام الأسبوع. يوم الخميس:
وحدة التحكم. اكتب ("الخميس هو الجمعة الجديدة!");
استراحة;
قضية يوم من أيام الأسبوع. جمعة:
وحدة التحكم. اكتب ("الحمد لله أنه يوم الجمعة!");
استراحة;
قضية يوم من أيام الأسبوع. السبت:
وحدة التحكم. اكتب ("يومي المفضل!");
استراحة;
قضية يوم من أيام الأسبوع. الأحد:
وحدة التحكم. اكتب ("اليوم الآخر المفضل!");
استراحة;
تقصير:
وحدة التحكم. اكتب ("يوم غير صالح من الأسبوع.");
استراحة;
}

كيفية تكرار أكثر من التعداد في C #

يمكنك التكرار على الأعداد في C # باستخدام تعداد. GetValues ​​() طريقة ، والتي تُرجع مصفوفة من جميع القيم الموجودة في التعداد. يتم طباعة مقتطف الشفرة هذا كل يوم من أيام الأسبوع ، بما في ذلك الاثنين والثلاثاء وما إلى ذلك:

foreach (يوم من أيام الأسبوع في تعداد. GetValues ​​(نوع من(يوم من أيام الأسبوع)))
{
وحدة التحكم. اكتب ((int)يوم)؛ // لطباعة الفهرس
وحدة التحكم. اكتب (اليوم) ؛ // لطباعة قيمة النص
}

يمكنك أيضًا تكرار قيم التعداد باستخدام امتداد تعداد. GetNames () طريقة. تقوم بإرجاع قائمة بقيم السلسلة لتمثيل أسماء خيارات التعداد:

foreach (خيط اسم في تعداد. GetNames (نوع من(يوم من أيام الأسبوع)))
{
int الفهرس = (int) (يوم من أيام الأسبوع) تعداد. تحليل (نوع من(يوم من أيام الأسبوع) ، الاسم) ؛

وحدة التحكم. WriteLine (فهرس) ؛ // لطباعة الفهرس
وحدة التحكم. اكتب (الاسم) ؛ // لطباعة قيمة النص
}

استخدام Enums في C #

يمكنك استخدام التعدادات في التعليمات البرمجية الخاصة بك لجعلها أكثر قابلية للقراءة وأقل عرضة للأخطاء. يمكن أن تكون Enums مفيدة جدًا أيضًا عند إقرانها ببنيات أخرى ، مثل القواميس.