0Pricing
C# Academy · درس

تعريف التعدادات واستخدامها

أنشئوا تعدادًا بقيم صريحة وضمنية

تعريف التعدادات واستخدامها درس مجاني في C# Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في C# Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة C# Academy 4 دروس في المجموع.

ما هو التعداد؟

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

using System;

enum Direction { North, East, South, West }
class Program {
    static void Main() {
        Direction d = Direction.East;
        Console.WriteLine(d);
    }
}

تعريف التعداد

تعرّف التعداد باستخدام الكلمة المفتاحية enum وتسرد أعضاءه. ويكون العضو الأول 0 افتراضيًا، والثاني 1، وهكذا.

using System;

enum Day { Mon, Tue, Wed }
class Program {
    static void Main() {
        Console.WriteLine((int)Day.Mon);
        Console.WriteLine((int)Day.Wed);
    }
}

القيم الأساسية المخصصة

يمكنك تعيين أرقام صريحة. وتتابع الأعضاء التي لم تُعيَّن لها قيم من القيمة السابقة.

using System;

enum Status { Active = 1, Paused = 5, Stopped }
class Program {
    static void Main() {
        Console.WriteLine((int)Status.Stopped);
    }
}

اختيار النوع الأساسي

تستخدم التعدادات int افتراضيًا، لكن يمكنك اختيار نوع صحيح آخر مثل byte لتوفير المساحة.

using System;

enum Level : byte { Low = 1, High = 200 }
class Program {
    static void Main() {
        Console.WriteLine((byte)Level.High);
    }
}

التعدادات في المتغيرات

استخدم نوع التعداد مثل أي نوع آخر للمتغيرات والوسائط والحقول.

using System;

enum Color { Red, Green, Blue }
class Program {
    static void Describe(Color c) {
        Console.WriteLine("Color is " + c);
    }
    static void Main() {
        Describe(Color.Green);
    }
}

التعدادات في switch

تتوافق التعدادات بشكل ممتاز مع switch لإنشاء تفرعات واضحة وشاملة.

using System;

enum Signal { Stop, Go, Caution }
class Program {
    static void Main() {
        Signal s = Signal.Go;
        switch (s) {
            case Signal.Stop: Console.WriteLine("Halt"); break;
            case Signal.Go: Console.WriteLine("Move"); break;
            default: Console.WriteLine("Slow"); break;
        }
    }
}

مقارنة قيم التعداد

تُقارن قيم التعداد باستخدام == وعوامل الترتيب استنادًا إلى أرقامها الأساسية.

using System;

enum Priority { Low, Medium, High }
class Program {
    static void Main() {
        Console.WriteLine(Priority.High > Priority.Low);
    }
}

القيمة الافتراضية للتعداد

يساوي التعداد غير المهيأ العضو الذي قيمته 0. ومن الممارسات الجيدة جعل القيمة 0 قيمة افتراضية منطقية مثل None.

using System;

enum Mode { None, Fast, Slow }
class Program {
    static void Main() {
        Mode m = default;
        Console.WriteLine(m);
    }
}

طباعة أسماء التعداد

يؤدي استدعاء ToString أو طباعة تعداد إلى عرض اسم العضو، وهو أوضح بكثير من عرض رقم مجرد.

using System;

enum Fruit { Apple, Banana, Cherry }
class Program {
    static void Main() {
        Console.WriteLine(Fruit.Banana.ToString());
    }
}

التعدادات تحسن قابلية القراءة

بالمقارنة مع تمرير أعداد صحيحة مجردة، توضّح التعدادات الغرض وتمنع القيم غير الصالحة.

using System;

enum Size { Small, Medium, Large }
class Program {
    static int PriceFor(Size s) {
        return s == Size.Large ? 12 : 8;
    }
    static void Main() {
        Console.WriteLine(PriceFor(Size.Large));
    }
}

موضع تعريف التعدادات

يمكن وضع التعدادات على مستوى مساحة الاسم أو داخل فئة. أبقِها قريبة من الشيفرة التي تستخدمها.

using System;

class Program {
    enum Phase { Start, Run, End }
    static void Main() {
        Console.WriteLine(Phase.Run);
    }
}

تحقق سريع

اختبر مدى فهمك للتعدادات.

مراجعة

يعرّف enum مجموعة من الثوابت المسماة، مما يحسن قابلية القراءة مقارنة بالأرقام السحرية. وتكون قيم الأعضاء افتراضيًا 0 و1 و2...، لكن يمكنك تعيين قيم صريحة، بل وتغيير النوع الصحيح الأساسي.

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

الأسئلة الشائعة

هل درس «تعريف التعدادات واستخدامها» مجاني؟

نعم — نص درس «تعريف التعدادات واستخدامها» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة C# Academy، انتقل إلى CoddyKit PRO. تتضمن دورة C# Academy 4 دروس في المجموع.

ماذا ستتعلم في «تعريف التعدادات واستخدامها»؟

أنشئوا تعدادًا بقيم صريحة وضمنية تتمرن على C# Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ C# Academy؟

لا تُشترط خبرة سابقة. C# Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «تعريف التعدادات واستخدامها»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس C# Academy هذا؟

نعم. كل درس في C# Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. تعريف التعدادات واستخدامها
  2. تعدادات Flags والدمج على مستوى البت
  3. تحويلات التعداد وتحليله
  4. التكرار على قيم التعداد
← العودة إلى C# Academy