درک مفهوم Enum در سی شارپ
چهارشنبه 6 خرداد 1394Enumها نوع داده شمارشی ساده هستند و اگر ما میخواهیم تعدادی مقادیر ثابت که با یکدیگر ارتباط دارند در برنامه خود داشته باشیم از Enum ها استفاده میکنیم Enum ها باعث خوانایی بیشتر برنامه میشوند برای استفاده Enum ها از فضای نام System.Collections استفاده میکنیم
Enumها نوع داده شمارشی ساده هستند و اگر ما بخواهیم تعدادی مقادیر ثابت که با یکدیگر ارتباط دارند در برنامه خود داشته باشیم از Enum ها استفاده میکنیم .Enum ها باعث خوانایی بیشتر برنامه میشوند برای استفاده از Enum ها از فضای نام System.Collections استفاده میکنیم
اکنون یک پروژه از نوع Console Application ایجاد میکنیم
مثال اول :
enum Enum_Name
{
Sun, Mon, Tue, Wed, Thu, Fri, Sat
};
static void Main(string[] args)
{
Console.WriteLine(Enum_Name.Sun);
Console.WriteLine(Enum_Name.Mon);
Console.WriteLine(Enum_Name.Tue);
Console.WriteLine(Enum_Name.Wed);
Console.WriteLine(Enum_Name.Thu);
Console.WriteLine(Enum_Name.Fri);
Console.WriteLine(Enum_Name.Sat);
Console.WriteLine((int) Enum_Name.Sun);
Console.WriteLine((int) Enum_Name.Mon);
Console.WriteLine((int) Enum_Name.Tue);
Console.WriteLine((int) Enum_Name.Wed);
Console.WriteLine((int) Enum_Name.Thu);
Console.WriteLine((int) Enum_Name.Fri);
Console.WriteLine((int) Enum_Name.Sat);
Console.ReadLine();
}
برای تعریف Enum باید از کلمه کلیدی آن (enum) استفاده کنیم و همچنین برای استفاده از داده های آن در برنامه ُ کافی است که اسمEnum به همراه "." و داده ی موردنظر را وارد کنیم.
روش معمول برای نمایش مقدار عددی در Enum,باید آن را به نوع int تبدیل کنیم.
این نکته را هم یاد اوری کنم که enum ها از 0 شماره گذاری می شوند و به ترتیب به آنها یک واحد اضافه میشود
Console.WriteLine: برای چاپ کردن مقادیر در کنسول است
Console.ReadLine(); : برای خواندن مقادیر در کنسول است
خروجی برنامه بالا
شاید شما بخواهید در برنامه از یک عدد به خصوصی شروع کنید و به صورت داینامیک اعداد بعد از آن یک واحد اضافه شوند. برای این کار هم میتوان از enum ها استفاده کرد.
enum Enum_Name
{
Sun, Mon, Tue, Wed = 100, Thu, Fri, Sat
};
static void Main(string[] args)
{
Console.WriteLine((int) Enum_Name.Sun);
Console.WriteLine((int) Enum_Name.Mon);
Console.WriteLine((int) Enum_Name.Tue);
Console.WriteLine((int) Enum_Name.Wed);
Console.WriteLine((int) Enum_Name.Thu);
Console.WriteLine((int) Enum_Name.Fri);
Console.WriteLine((int) Enum_Name.Sat);
Console.ReadLine();
}
مثال 3
اگر همان طور که در مثال قبل توضیح دادم شما میخواهید از یک عدد خاصی در برنامه استفاده کنید کافی است از enum استفاده کنیم. ولی اگر این اعداد بزرگ باشند. هنگام تبدیل به int به error زیر بر میخوریم برای حل این مشکل کافی است یه جای تبدیل به int نوع از long استفاده کنیم.
enum Enum_Name
{
Sun, Mon, Tue, Wed = 10000000000, Thu, Fri, Sat
};
static void Main(string[] args)
{
Console.WriteLine((int) Enum_Name.Sun);
Console.WriteLine((int) Enum_Name.Mon);
Console.WriteLine((int) Enum_Name.Tue);
Console.WriteLine((int) Enum_Name.Wed);
Console.WriteLine((int) Enum_Name.Thu);
Console.WriteLine((int) Enum_Name.Fri);
Console.WriteLine((int) Enum_Name.Sat);
Console.ReadLine();
}
خروجی کد بالا
حال با استفاده از نوع long خطای بالا برطرف می شود.
enum Enum_Name: long
{
Sun, Mon, Tue, Wed = 10000000000, Thu, Fri, Sat
};
static void Main(string[] args)
{
Console.WriteLine((int) Enum_Name.Sun);
Console.WriteLine((int) Enum_Name.Mon);
Console.WriteLine((int) Enum_Name.Tue);
Console.WriteLine((long) Enum_Name.Wed);
Console.WriteLine((long) Enum_Name.Thu);
Console.WriteLine((long) Enum_Name.Fri);
Console.WriteLine((long) Enum_Name.Sat);
Console.ReadLine();
}
- C#.net
- 13k بازدید
- 7 تشکر