ژوئن 16, 2019 Mostafa بدون دیدگاه

اگر دنبال برنامه نویس برای ساخت افزونه ،قالب،سایت،برنامه ویندوز،اپلیکیشین اندروید،ربات تلگرام و.... هستید ،سفارش برنامه نویسی را مطالعه نمایید.

توجه : درخواست افزونه ،قالب، اسکریپت و نرم افزار و ... و سوالات و مشکلات خود را در انجمن ارسال نمایید

در زبان برنامه نویسی سی شارپ شمارنده ها داده نوعی از نوع value type هستند. یک شمارنده برای تعریف لیستی از ثابت های نامدار استفاده می‌شود. شمارنده ها می توانند به صورت مستقیم با استفاده از کلمه رزرو شده enum داخل یک فضای نام ، کلاس و یا ساختار تعریف شوند. شمارنده ها برای انتخاب نام برای یک ثابت عددی استفاده میشوند.

شمارند ها (enum)

به کمک شمارنده ها عدد های ثابت صحیح می توانند توسط یک نام مورد ارجاع قرار گیرند. در نمونه مثال زیر تعریف یک شمارنده نشان داده شده است :

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);

خروجی :
Friday 
۴

به صورت پیش فرض اولین عضو از یک شمارنده دارای مقداری برابر با ۰ است و مقادیر بعدی اعضا به ترتیب با افزایش یکی به این مقدار پیش فرض به دست می آیند. برای مثال در شمارنده نمونه مثال زیر  Monday دارای مقدار ۰ ، Tuesday دارای مقدار ۱ و Wednesday دارای مقدار ۲ است و به همین ترتیب تا آخر یکی به مقادیر افزوده می شود.

enum WeekDays
{
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday,
    Sunday
}

Console.WriteLine((int)WeekDays.Monday);
Console.WriteLine((int)WeekDays.Friday);

خروجی :
۰ 
۴

برای تبدیل یک داده نوع شمارنده به یک نوع صحیح استفاده از تبدیل صریج ضروری است برای مثال در نمونه مثال زیر برای بدست آوردن مقدار یکی از اعضای شمارنده از تبدیل صریح استفاده شده است :

int dayNum = (int)WeekDays.Friday;

Console.WriteLine(dayNum);

خروجی :

۴

نکته : در زبان برنامه نویسی سی شارپ عمل تبدیل یک نوع به نوعی دیگر casting نام دارد. تبدیل می تواند به صورت صریح توسط برنامه نویس و یا به صورت ضمنی توسط کامپایلر انجام پذیرد.

تغییر در مقدار اولین عضو یک شمارنده باعث خواهد شد که مقادیر بعدی به صورت خودکار بر اساس مقدار عضو اولیه و با افزایش یکی به آن به ترتیب مقدار دهی مجدد شوند.
برای مثال تغییر مقدار Monday به عدد ۱۰ باعث تغییر مقدار Tuesday به ۱۲ و Wednesday به ۱۳ و به همین ترتیب تا آخر خواهد شد.

enum WeekDays
{
    Monday = 10,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday,
    Sunday
}
Console.WriteLine((int)WeekDays.Monday);
Console.WriteLine((int)WeekDays.Friday);

خروجی :
۱۰ 
۱۴

شمارنده ها می توانند دارای مقادیری با داده نوع های byte ، sbyte ، short ، ushort ، int ، uint ، long و ulong باشند. از داده نوع رشته ای string نمی توان در شمارنده ها استفاده کرد.شمارنده ها با مربوط کردن نام های معنی دار به اعداد باعث می‌شود خوانایی کد نوشته شده بهبود یابد. آنها همچنین نگهداری و توسعه برنامه را ساده تر می کنند.

 

متدهای کلاس Enum

Enum یک کلاس abstract بوده که شامل متد های استاتیکی است که برای کار با شمارنده ها استفاده می ‌شوند :

متد Format :  مقدار مشخص شده یک شمارنده را به یک رشته تبدیل می‌کند
متد GetName : نام یک ثابت عددی مشخص شده در شمارنده را برمیگرداند
متد GetNames : آرایه ای رشته ای از تمام ثابت های عددی یک  شمارنده را برمیگرداند
متد GetValues : آرایه ای از همه مقادیر ثابت های یک شمارنده را برمیگرداند

توجه :

  • یک شمارنده مجموعه ای از ثابت های نامدار است
  • مقدار یک شمارنده به صورت پیشفرض از ۰ آغاز می‌شود. شمارنده ها می توانند دارای مقداری با هرداده نوع عددی معتبر باشند
  • شمارنده ها برای داده نوع رشته ای در سی شارپ پشتیبانی نمی شود
  • شمارنده ها برای خوانایی بیشتر و نگهداری آسان تر برنامه استفاده می‌شود

 


برچسب ها