تخطَّ إلى المحتوى

enum

التعداد enum enum

enum يعرّف مجموعة ثابتة من القيم المسمّاة مدعومة برقم صحيح، بدل استخدام أرقام سحرية غير مفهومة في الكود.

النوع الأساسي الافتراضي لأي enum هو int، وتبدأ القيم من 0 وتزيد بمقدار واحد ما لم تحدَّد صراحة. يمكن اختيار نوع أساسي مختلف (byte, short, long...) وإعطاء كل عضو قيمة صريحة، مفيد مثلًا عند مطابقة رموز خارجية كرموز حالة HTTP.

عندما يمثّل التعداد تركيبة اختيارات لا اختيارًا واحدًا، يُعرَّف كل عضو كقوة من 2 مع خاصية [Flags] لدمج القيم بعملية OR المنطقية.

الصياغة

enum TypeName
{
    Member1,
    Member2 = value
}

📄 مثال

enum HttpStatus : ushort
{
    OK = 200,
    NotFound = 404,
    ServerError = 500
}

HttpStatus s = HttpStatus.NotFound;
int code = (int)s;                 // 404
bool valid = Enum.IsDefined(typeof(HttpStatus), 999);   // false

أهم النقاط

العنصرالوظيفة
النوع الأساسي الافتراضيint، القيم تبدأ من 0
[Flags]يسمح بدمج عدّة قيم بعملية | (قوى 2)
Enum.Parse / TryParseتحويل نص إلى قيمة enum

💡 نصائح عملية

  • استخدم Enum.IsDefined للتحقق من صحة قيمة enum قادمة من مصدر خارجي (تحويل صريح لا يتحقق تلقائيًا)

⚠️ أخطاء شائعة

  • تحويل رقم عشوائي إلى enum بـ (Type)value ظنًا أن النوع يمنع القيم غير المعرَّفة — هذا غير صحيح، الفحص يدوي

خصائص ذات صلة

🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار CSHARP الكامل بالعربي.