تبلیغات

آموزش اختصاص مقدار int به enum و خواندن آن در سی شارپ

برخی اوقات شاید نیاز داشته باشیم برای هر یک از حالت‌هایی که در یک enum تعریف کرده‌ایم، مقدار عددی خاصی را نیز در نظر بگیریم! البته اگر چنین کاری را هم انجام ندهیم، خود سی شارپ به صورت پیشفرض، از 0 اعدادی را به ترتیب به حالت‌های مختلف enum ای که ساخته‌ایم نسبت خواهد داد؛ اما شاید بخواهیم تا هر حالت، یک عدد دلخواهی را برای خود داشته باشد.

روش انجام کار

فرض کنید یک enum به صورت زیر تعریف کرده‌ایم:

در این جا برای هر کدام از حالت‌ها، هیچ مقدار int تعریف نشده است؛ اما در واقع هرکدام شامل یک مقدار int هستند که خود سی شارپ به آنها اختصاص داده است! به این صورت که مقدار Member برابر 0 ، Admin برابر 1 و … خواهد بود. (به ترتیب نوشته شده)


اما شاید بخواهید برای هرکدام از این حالت‌ها، اعداد دلخواهتان را اختصاص دهید. پس به شکل زیر عمل می‌کنیم.

تنها کافی است با قرار دادن یک = جلوی هرکدام، مقدار آن را تعیین کنیم!


نکته‌ی مهمی که اینجا لازم است بدانید این است که می‌توان برای برخی از این حالت‌ها، هیچ عددی را تعیین نکرد تا خود سی شارپ این کار را انجام دهد، برای مثال به نمونه زیر توجه کنید.

در اینجا، مقدار Author به نظر شما برابر با چند خواهد شد؟!
مقدارهایی که مشخص نشده‌اند، از زآخرین مقدار مشخص شده شمرده خواهند شد! در بالا، Admin از ادامه‌ی Member تعیین خواهد شد و بنابراین مقدار آن، 86 می‌شود و بدین ترتیب، مقدار Author نیز برابر 87 خواهد شد.

– می‌توان یک عدد را به چندین حالت مختلف اختصاص داد.
– هر حالتی اگر بخواهد به طور پیشفرض عدد خودش را تعیین کند، این عدد را از ادامه‌ی عدد آخرین حالت قبلی خواهد گرفت و زمانی که هیچ حالتی قبل از آن وجود نداشته باشد، مقدار 0 به آن اختصاص خواهد یافت.

نمایش مقدار int یک enum

برای نمایش مقدار یک حالت در enum، کافی است آن را به int تبدیل کنیم. به صورت زیر:

پس مقدار عددی حالت Author به داخل متغیر number ریخته می‌شود.

تبدیل مقدار int به enum

اگر بخواهیم از روی یک عدد به مقدار حالت enum برسیم نیز برعکس بالا عمل خواهیم کرد:

– همواره اولین حالتی که آن عدد را داشته باشد گرفته می‌شود.
– اگر عدد در بین حالت‌ها وجود نداشته باشد، موقعی که بخواهیم آن enum را نمایش دهیم، مقدار همان عدد چاپ خواهد شد.

تبلیغات
0
کانال تلگرام فول کده
تبلیغات

درباره نویسنده

هادی اکبرزاده

[ مدیر فول کده ]

علاقه‌مند به اشتراک گذاری اطلاعات در هر زمینه‌ای / برنامه‌نویس / مدیر فول کده

پاسخ دهید

نظرات ثبت شده بدون دیدگاه