سؤال

تحية طيبة،

أنا مبتدئين إلى OO والبرمجة ولدي الوضع التالي:

لدي مجموعة من القيم المتقدمة وتعمل أن العديد من الفصول التي أجريت المشاركة.

هذه الفصول مستقلة، أي غير متابعة هذه القيم، فإنها لا تتفاعل مع بعضها البعض، لذلك لن يعمل ميراثهم.

كنت أتساءل؛ إذا قمت بإنشاء فئة فارغة مع هؤلاء فقط، فقم بإعلان كائن من هذه الفئة في كل فصل، يمكنني استخدام هذه القيم مثل:

globals.enum.enummember؟

هل هذه البرمجة الصوتية أم أنها هناك طريقة أفضل للقيام بذلك؟

شكرا على وقتك.

هل كانت مفيدة؟

المحلول

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

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

تدرب الممارسة أن الثوابت ونادرا ما هي ببساطة عالمية. معظم الوقت يقترنون عن كثب مع فصول واحدة أو قليلة. يجب عليك بعد ذلك تحديد هذه الثوابت كجزء من الفئة المناسبة ووضع عودة في مساحة الاسم نفسها مثل الفئة باستخدامها.

نصائح أخرى

يمكنك استخدام فئة ثابتة مع أعضاء ثابت لتحقيق السلوك المطلوب:

namespace A {
    public static class Enum1 {
       public static readonly int EnumMember1 = 1;
       public static readonly int EnumMember2 = 2;
       public static readonly int EnumMember3 = 3;
    }
}

يجب عليك استخدام هذا بالطريقة التالية:

int x = A.Enum1.EnumMember2;
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top