تصميم التعداد
عمليات التعداد بتوفير مجموعات من قيم الثابتة التي تعتبر مفيدة لكتابة الأعضاء بشدة و لتحسين إمكانية القراءة من تعليمات برمجية. أما أن تكون التعدادات بسيطة أو علامات. التعدادات بسيطة تحتوي على قيم التي لم يتم دمجها أو مستخدمة في مقارنات أحادي المعامل. يقصد من التعدادات علامات إلى يمكن دمجها باستخدام العمليات OR تمثل. تركيبة العلامات قائمة تعداد يتم فحص القيم باستخدام العمليات و تمثل.
توضح الإرشادات العامة التالية أفضل الممارسات ل قائمة تعداد التصميم.
قم باستخدام لتعداد بشدة نوع المعلمات وخصائص وقيم الإرجاع التي تمثل مجموعات من قيم.
يفضل مستخدمو استخدام قائمة تعداد بدلاً من الثوابت ثابت.
يلي تعليمات برمجية يوضح المثال التصميم غير صحيحة.
Public Class BadFurnishings
Public Shared Table As Integer = 1
Public Shared Chair As Integer = 2
Public Shared Lamp As Integer = 3
End Class
public static class BadFurnishings
{
public static int Table = 1;
public static int Chair = 2;
public static int Lamp = 3;
}
يلي تعليمات برمجية يوضح المثال التعداد التي يجب استخدامها بدلاً من الثوابت ثابت.
Public Enum GoodFurnishings
Table
Chair
Lamp
End Enum
public enum GoodFurnishings
{
Table,
Chair,
Lamp
}
لا تستخدم لتعداد لفتح مجموعات مثل كـ الإصدار النظام التشغيل.
إضافة يمكن فصل قيم لتعداد تم شحنها بالفعل الموجودة تعليمات برمجية. هناك أوقات عندما th هو هو مقبولة، ولكن يجب أن لا تصميم لتعداد الموقع th هو هو أن تكون الحالة.
قم بتعريف غير محجوزة قائمة تعداد قيم مخصصة للاستخدام في المستقبل.
في بعض الحالات قد قررت أن إضافة قيم للقائمة تعداد الشحن هو تستحق rهوk ربما التحمل رمز exهوting. يمكنك أيضا تعريف قائمة تعداد جديد و الأعضاء التي تعمل مع قيم الخاصة به.
تجنب علنا تعريض التعدادات مع القيمة واحدة فقط.
لا تقم بتضمين قيم sentinel في عمليات التعداد.
يتم استخدام قيم sentinel إلى تعريف حدود قيم في التعداد. القيمة sentinel عادة هو المستخدمة في عمليات فحص نطاق و هو غير القيمة بيانات صالحة. يعرف مثال التعليمة البرمجية التالية قائمة تعداد بقيمة sentinel.
Public Enum Furniture
Desk
Chair
Lamp
Rug
LastValue
End Enum
public enum Furniture
{
Desk,
Chair,
Lamp,
Rug,
LastValue // The sentinel value.
}
قم بتوفير القيمة الصفر في التعدادات بسيطة.
إذا كان ممكناً، قم بتسمية هذه القيمة None. إذا Noneهو غير مناسب، قم بتعيين القيمة صفر للقيمة الأكثر استخداماً (الافتراضي).
يمكنك استخدام النظام.Int32 (نوع البيانات الافتراضي في معظم لغات البرمجة) كنوع بيانات الأساسي لتعداد إلا إذا كان أي مما يلي هو صحيحاً:
القائمة تعداد قائمة تعداد علامات والإشارات أكثر من 32 أو تتوقع أن إلى لها أكثر في المستقبل.
النوع الأساسي يحتاج إلى يكون مختلفاً عن Int32للتشغيل البيني أسهل باستخدام تعليمات برمجية غير مُدارة توقع التعدادات الحجم مختلف.
قد ينتج عن نوع المصدر أصغر حقيقي التوفير في المساحة. إذا كنت تتوقع لتعداد ليتم استخدامه بشكل أساسي كوسيطة لتدفق عناصر التحكم، الحجم اختلاف قليل. قد يكون التوفير الحجم كبير إذا:
تتوقع التعداد إلى يمكن استخدامه كحقل في بنية منشأ بشكل متكرر جداً أو فئة.
تتوقع أن يقوم المستخدمون إلى إنشاء صفائف قطر أيمن متوسط أو مجموعات من قائمة تعداد مثيلات.
توقع عدد كبير من مثيلات يمكن إجراء تسلسل للتعداد.
قم بتسمية التعدادات الإشارات بالجمع أو العبارات اسم.يجب أن يسمى التعدادات بسيطة مع المفرد أو العبارات اسم.
عدم توسيع النظام.Enum مباشرة.
Some compilers do not allow you إلى extend Enum unless you do it indirectly using the خاص بلغة المفتاح الكلمة for generating enumerations.
أجزاء حقوق النشر 2005 Microsoft Office 2010 Suite Corporation. كافة الحقوق محفوظة.
أجزاء حقوق النشر شركة Addison-Wesley. كافة الحقوق محفوظة.
ل المزيد المعلومات تشغيل إرشادات التصميم، راجع "إطار عمل إرشادات التصميم: كتاب اصطلاحات، Idioms، و نقش لمكتبات.NET القابل لإعادة الاستخدام"ب Krzysztof Cwalina و رفيق Abrams، ينشره Addison-Wesley، 2005.