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 الكامل بالعربي.