Enumeration ها، مجموعه ای از مقادیر با نام (named value) هستند که متناظر با مجموعه ای از اعداد، معمولا از نوع integer می باشند. Enumeration ها در موارد مختلفی کاربرد دارند، مثلا زمانی که می خواهید قادر باشید از بین مجموعه ای از مقادیر ثابت، به راحتی مقدار مورد نظر خود را انتخاب کرده و آن را متناظر با یک مقدار عددی قرار دهید.
همان طور که در کد مثال های عملی این درس خواهید دید Enumeration ها در بالای کلاس ها و در درون namespace تعریف می شوند. بنابراین می توان از هر Enumeration در کل namespace جای برنامه، استفاده کرد.
در کد زیر، یک مثال ساده از نوع تعریف Enumeration ها در زبان C# نشان داده شده است :
کد:
public enum Days { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday }
تمامی مقادیر موجود در Enumeration فوق، متناظر با یک مقدار عددی هستند. اگر مقادیر متناظر Enumeration ها را به صورت دستی تعیین نکنید، به طور پیش فرض اولین مقدار متناظر با o، مقدار بعدی متناظر با 1 و به همین ترتیب خواهند بود.
کد زیر، نحوه ارتباط پیش فرض هر یک از آیتم های Enumeration را نشان داده و به شما نحوه استفاده از یک مقدار خاص بر حسب یک Enumeration را یاد می دهد :
کد:
using System; namespace ConsoleApplication1{ public enum Days { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday } class Program { static void Main(string[] args) { Days day = Days.Monday; Console.WriteLine((int)day); Console.ReadLine(); } }}
خروجی کد مثال فوق صفر خواهد بود، زیرا مقدار Monday مستقیما با مقدار o متناظر خواهد بود. البته توسط کد زیر می توانید عدد متناظر با Enumeration ها را به مقدار دلخواه تغییر دهید :
کد:
public enum Days { Monday = 1, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday }
اگر کد فوق را اجرا کنید، خواهید دید که این بار Monday به جای صفر متناظر با یک خواهد بود. سایر مقادیر Enumeration را هر یک به ترتیب دارای یک مقدار بیشتر از 1 خواهند بود.

نکته :شما می توانید هر عضو Enumeration را به یک عدد خاص و لزوما غیر پشت سر هم نسبت دهید.
به دلیل ارتباط مستقیم هر عضو Enumeration با عدد متناظر آن، می توانید به وسیله اعداد مقدار هر عضو Enumeration مورد نظر خود را بخوانید. به صورت کد زیر :
کد:
Days day = (Days)5;Console.WriteLine(day);Console.ReadLine();
قابلیت دیگر Enumeration ها این است که به وسیله حلقه های تکرار، می توانید مقادیر رشته ای (string) یک Enumeration را در خروجی نشان دهید. کد مثال قبل را به کد زیر تغییر دهید :
کد:
static void Main(string[] args){ string[] values = Enum.GetNames(typeof(Days)); foreach(string s in values) Console.WriteLine(s); Console.ReadLine();}
کلاس Enum Class دارای گروهی از متدهای کاربردی است که می توانید آن ها را برای کار با Enumeration ها استفاده کنید.