با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن . و کاربرانی که دوره کامل آموزش #c ، را دنبال می کنند. در قسمت قبلی شما با ساختارها و کاربرد آنها در زبان #C شدید.
در این بخش قصد داریم شما را با مفهوم enum در زبان #C و متدهای enum در سی شارپ ، که به کدنویسی هرچه ساده و قابل فهم تر برنامه کمک می کنند، آشنا کنیم.
در واقع enum ها یک نوع داده خاص هستند که برای ایجاد یک لیست از ثابت های صحیح استفاده می شوند.
enum ها را می توان با استفاده از کلمه کلیدی enum در یک فضای نام ، کلاس و یا ساختار تعریف کرد.
1 2 3 4 5 6 7 8 9 10 11 12 13 | enum WeekDays { Monday = 0, Tuesday =1, Wednesday = 2, Thursday = 3, Friday = 4, Saturday =5, Sunday = 6 } Console.WriteLine(WeekDays.Friday); Console.WriteLine((int)WeekDays.Friday); |
خروجی :
1 2 | Friday 4 |
به طور پیش فرض، اولین مورد از enum دارای مقدار ۰ است و مقادیر دیگر موارد به ۱ افزایش می یابند. به عنوان مثال، در شمارش زیر، روز شنبه دارای مقدار ۰، روز یکشنبه ۱، روز دوشنبه ۲ و … است.
1 2 3 4 5 6 7 8 9 10 11 12 13 | enum WeekDays { Saturday, Sunday, Monday, Thursday, Wednesday, Tuesday, Friday } Console.WriteLine((int)WeekDays.Monday); Console.WriteLine((int)WeekDays.Friday); |
خروجی :
1 2 | 2 6 |
برای استفاده از مقدار ثابت هر مورد در enum ابتدا باید آن را به int تبدیل کنید مانند مثال زیر:
1 2 3 | int dayNum = (int)WeekDays.Friday; Console.WriteLine(dayNum); |
خروجی :
1 | 6 |
تغییر در مقدار مورد اول در enum ها بصورت خودکار مقادیر بعدی را نیز تحت تاثیر قرار می دهد . به مثال زیر توجه کنید:
1 2 3 4 5 6 7 8 9 10 11 12 13 | enum WeekDays { 10= Saturday, Sunday, Monday, Thursday, Wednesday, Tuesday, Friday } Console.WriteLine((int)WeekDays.Monday); Console.WriteLine((int)WeekDays.Friday); |
خروجی :
1 2 | 12 16 |
enum میتواند شامل نامهای ثابت از نوع داده عددی byte, sbyte, short, ushort, int, uint, long یا ulong باشد.
Enum یک کلاس انتزاعی است که شامل متدهایی است که کار با آن را آسان می کنند.
توضیحات | متدهای enum |
مقدار مشخص شده enum را به فرمت رشته خاصی تبدیل می کند. | Format |
نام ثابت مشخص شده در enum را باز می گرداند. | GetName |
یک آرایه از تمام نامهای ثابت در enum مشخص را بازمی گرداند. | GetNames |
آرایه ای از مقادیر تمام ثابت های enum را باز می گرداند. | GetValues |
نمایش رشته ای از نام یا مقدار عددی یک یا چند عنصر شمارش شده را به یک عنصر شمارش معادل تبدیل می کند. | object Parse(type, string) |
نمایش رشته ای از نام یا مقدار عددی یک یا چند عنصر شمارش شده را به یک عنصر شمارش معادل تبدیل می کند. و در آخر مقدار بازگشتی نشان می دهد که آیا تبدیل موفق بوده یا نبوده. | bool TryParse(string, out TEnum) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | enum WeekDays { Saturday, Sunday, Monday, Thursday, Wednesday, Tuesday, Friday } Console.WriteLine(Enum.GetName(typeof(WeekDays), 4)); Console.WriteLine("WeekDays constant names:"); foreach (string str in Enum.GetNames(typeof(WeekDays))) Console.WriteLine(str); Console.WriteLine("Enum.TryParse():"); WeekDays wdEnum; Enum.TryParse<WeekDays>("1", out wdEnum); Console.WriteLine(wdEnum); |
خروجی :
1 2 3 4 5 6 7 8 9 10 11 | Wednesday WeekDays constant names: Saturday Sunday Monday Thursday Wednesday Tuesday Friday Enum.TryParse(): Sunday |
در این بخش با enum ها در زبان #C آشنا شدید.
در قسمت بعدی قصد داریم شما را با StringBuilder ها و کاربرد آنها در زبان #C آشنا کنیم.