enum در سی شارپ – آموزش به زبان ساده

۶۹ بازدید
آخرین به‌روزرسانی: ۳۱ اردیبهشت ۱۴۰۴
زمان مطالعه: ۱۵ دقیقه
دانلود PDF مقاله
enum در سی شارپ – آموزش به زبان سادهenum در سی شارپ – آموزش به زبان ساده

«Enum» یا «Enumeration» نوع ویژه‌ای از انواع داده در زبان برنامه نویسی سی شارپ است. توسعه‌دهندگان با کمک این نوع می‌توانند هر تعداد مقدار ثابت را در دسته‌ای‌ جمع‌آوری کنند. البته این دسته باید یک نام هم داشته باشد. با استفاده از Enum در سی شارپ، خوانایی کدها بیشتر شده و امکان بروز خطا هم کاهش پیدا می‌کند. نوع «Enumeration»‌ را با نام نوع شمارشی هم می‌شناسند. وجود انواع داده در سی شارپ باعث شده که توان آن برای انجام محاسبات گوناگون افزایش پیدا کند. enum هم یکی از همین انواع داده است. شمارنده enum فقط می‌تواند مقادیر خود را روبه‌جلو پیمایش کند ولی امکان تغییر دادن ترتیب آن‌ها را ندارد.

فهرست مطالب این نوشته
997696

در این مطلب از مجله فرادرس نوع Enum در سی شارپ را بررسی کرده‌ایم. این نوع یکی از انواع ویژه و کاربردی زبان سی شارپ است. به عنوان توسعه‌دهنده لازم است که بتوانیم به شکل خوبی با انواع داده در سی شارپ کار کنیم. در نتیجه هم خوانایی کدها افزایش پیدا می‌کند و هم از حافظه به صورت بهینه‌ای استفاده کرده‌ایم. در ضمن امکان روبه‌رو شدن با خطاهای زمان کامپایل هم کاهش پیدا می‌کند.

Enum در سی شارپ چیست؟

Enum نوع شمارشی است. یعنی اینکه به صورت پیش‌فرض، مقادیر درون متغیر را شمرده و به هر کدام عدد مشخصی را اختصاص می‌دهد. این نوع، توسط کلمه کلیدی enum تعریف می‌شود. enum گروهی از مقادیر ثابت را با یک نام مشخص در کنار هم جمع می‌کند. این کار باعث می‌شود کدها خواناتر شده و نگهداری آن‌ها نیز راحت‌تر شود.

در کادر زیر، کدی را در ارتباط با تعریف نوع Enum، پیاده‌سازی کرده‌ایم.

در کد بالا، تعریف متغیر ساده‌ای از نوع Enum را مشاهده می‌کنید. به صورت پیش‌فرض، نوع Enum بر اساس نوع «Int» ساخته شده و شماره اولین مقدار هم با صفر شروع می‌شود.

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

تعریف نوع Enum در سی شارپ

در کدهای زیر، مثال ساده‌ای را درباره نوع enum پیاده‌سازی کرده‌ایم.

پارامتر WeekDays  در کد بالا به عنوان متغیر «شمارشی» (Enumeration) یا همان نوع Enum شناخته می‌شود. این متغیر شامل فهرستی از مقادیر ثابت، مانند Saturday و Sunday و غیره است. موارد ذخیره شده در این متغیر فقط عدد نیستند. بلکه روز‌های هفته هستند که می‌توانیم به شکل معنادار در برنامه استفاده کنیم.

مانیتور سفید رنگ با صفحه خطخطی و چند المان مینیمال دیگر

پیاده سازی Enum در سی شارپ همراه با مثال

بهترین روش برای درک مفاهیم اصلی برنامه نویسی، پیاده‌سازی آن‌ها است. در نتیجه برای کمک به درک بهتر Enum در سی شارپ، مثال‌های مختلفی را پیاده‌سازی کرده و توضیح داده‌ایم.

در کد بالا، متغیر enum را با نام TrafficLight  تعریف کرده‌ایم. مقادیر درون این متغیر برابر با Red  و Yellow  و Green  هستند. در خط آخر هم مقدار TrafficLight.Red  به متغیر light  تخصیص داده شده است.

ساخت کلاس Enum در سی شارپ

Enum-ها در سی شارپ، کلاس نیستند. اما می‌توانیم از کلاس‌ها برای نگهداری متغیرهای Enum استفاده کنیم. با این کار، می‌توانیم متدهای مفیدی هم به Enum اضافه کنیم.

Enum‌ معمولی - بدون کلاس - به اندازه کلاس Enum سریع نیست. استفاده از کلاس Enum توانایی‌های کاربردی برنامه نویسی شیءگرا مانند کپسوله سازی و ارث بری در سی شارپ را در اختیار توسعه‌دهندگان قرار می‌دهد. هر چقدر امکانات بیشتری داشته باشیم، خوانایی کدها هم بیشتر شده و نگهداری آن‌ها ساده‌تر می‌شود.

مثالی درباره کلاس Enum

در کادر زیر، روش نوشتن Enum را در داخل کلاس نشان داده‌ایم. به این روش «C# Class Enum» هم گفته می‌شود.

در کد بالا کلاس Season  را تعریف کرده‌ایم. در این کلاس متغیر Value  را به صورت کپسوله شده و از نوع enum ایجاد کردیم. این متغیر enum مقادیری با نام فصل‌های مختلف را نگهداری می‌کند. از این مقادیر می‌توان در داخل کلاس استفاده کرد.

در مثال زیر، روش ساده‌ای را درباره استفاده از متغیر enum بررسی کرده‌ایم.

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

Saturday: 1
Wednesday: 5

روش فرادرس برای آموزش سی شارپ چیست؟

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

مجموعه آموزش برنامه نویسی سی شارپ C#‎ – مقدماتی تا پیشرفته
با کلیک بر روی تصویر بالا می‌توانید به صفحه اصلی مجموعه فیلم‌های آموزش برنامه نویسی سی شارپ از دوره مقدماتی تا پیشرفته هدایت شوید.

«سی شارپ» (C#‎) به عنوان زبانی ساده، امن و انعطاف‌پذیر شناخته می‌شود. زبان سی شارپ در حوزه‌های گوناگون مانند ساخت نرم‌افزارهای دسکتاپ، وب اپلیکیشن‌ها، موبایل و بازی‌های کامپیوتری کاربرد دارد. با توجه به نیاز روزافزون کشور به نیرو انسانی متخصص، فرادرس تلاش کرده است تا با کیفیت‌ترین دوره‌ها را از لحاظ علمی و روش تدریس تولید کند. تمام فیلم‌های آموزشی فرادرس از رویکردی گام‌به‌گام و مثال‌محور پیروی می‌کنند. برای یادگیری #C کافی است به وب‌سایت فرادرس سر بزنید و دوره مناسب سطح خود را انتخاب کنید.

مشخص کردن مقادیر Enum

همیشه شماره اولین مقدار ثابت در Enum از 0 شروع می‌شود. شماره‌های بقیه ثابت‌ها هم به ترتیب یکی یکی زیاد می‌شوند. البته توسعه‌دهندگان در زمان تعریف این نوع متغیر می‌توانند مقادیر مشخص و مورد نظر خود را به ثابت‌های Enum اختصاص بدهند.

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

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

Status: NotFound
Numeric Value: 404

استفاده از Enum همراه با عبارت های Switch

می‌توانیم از متغیرهای enum در عبارت‌های «Switch» هم استفاده کنیم. در واقع به‌جای نوشتن مقادیر ثابت در عبارت‌های case  از ثابت‌های enum استفاده می‌کنیم.

در کدهای زیر، روش استفاده از متغیر enum در عبارت‌های switch را نشان داده‌ایم.

بعد از اجرای کدهای بالا، خروجی به شکل پیغام It's Wednesday.  در کنسول سی شارپ نمایش داده می‌شود.

دختری در حال برنامه نویسی با یک مانیتور بزرگ است - enum در سی شارپ

ترکیب چند مقدار مختلف با استفاده از فلگ‌های Enum

با استفاده از «عملگر‌های بیتی» ( Bitwise Operators) و ویژگی [Flags]  می‌توانیم چندین مقدار Enum مختلف را با یکدیگر ترکیب کنیم. این مسئله به طور خاص در برنامه‌هایی مفید است که باید در آن‌ها مجوز‌ها یا تنظیمات خاصی را مدیریت کنیم.

در مثال زیر، روش ترکیب چندین مقدار مختلف را با استفاده از فلگ‌های enum، بررسی کرده‌ایم.

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

User Permissions: Read, Write
You Have Write Permission? True
You Have Execute Permission? False

تبدیل رشته‌ یا اعداد صحیح به Enum

با تغییر دادن داده‌هایی از هر دو نوع استرینگ و عدد صحیح می‌‌توانیم متغیرهای Enum را بدست بیاوریم. برای تبدیل کردن متغیری با نوع «رشته» (String) به Enum از متد Enum.Parse()  استفاده می‌کنیم. اما برای تبدیل کردن متغیرهایی از نوع «اعداد صحیح» به Enum فقط کافی است که از کلمه enum استفاده کنیم. لازم به اشاره است که نوع استرینگ در برنامه نویسی، یکی از انواع داده بسیار پرکاربرد و مفید است. به عنوان توسعه‌دهنده لازم است که با این نوع و روش‌های استفاده از آن آشنا باشیم. بنابراین در صورت نیاز به آشنایی و آموزش استفاده از استرینگ می‌توانید، مطلب مربوط به آن را در مجله فرادرس مطالعه کنید.

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

بعد از کامپایل شدن و اجرای کدهای بالا، خروجی به شکل زیر در کنسول سی شارپ نمایش داده می‌شود.
Converted from string: Processing
Converted from integer: Delivered

Public Enum و کلاس Enum در سی شارپ

در این بخش از مطلب، دو مفهوم Public Enum و کلاس Enum در سی شارپ را بررسی کرده‌ایم. هر کدام از این مفاهیم ویژگی‌های مخصوص به خود را دارند. اما هر دوی آن‌ها برای رسیدن به هدف یکسانی ساخته شده‌اند. این هدف ساده‌تر کردن کدنویسی است.

ساده‌تر شدن کدنویسی در زمان اجرای پروژه‌های بزرگ، اهمیت بسیار زیادی دارد. یکی از پروژه‌های بزرگی که می‌توانید برای تمرین بر روی آن کار کنید مربوط به پیاده‌سازی نرم‌افزارهای کاربردی است. برای مثال پیشنهاد می‌کنیم که فیلم آموزش پروژه محور سی شارپ درباره پیاده سازی سیستم رستوران آنلاین را از فرادرس مشاهده کنید. به منظور کمک به مخاطبان مجله، لینک این فیلم را در پایین نیز قرار داده‌ایم.

Public Enum در سی شارپ

در دنیای جذاب زبان سی شارپ، Public Enum نقش بسیار مهمی بازی می‌کند. این نوع، داده‌های خود را در اختیار تمام کلاس‌های موجود در برنامه قرار می‌دهد.

در کدهای زیر، مثالی ساده و کاربردی درباره public enum را پیاده‌سازی کرده‌ایم.

در کدهای بالا، Animal  از نوع Enum عمومی است. به این منظور از کلمه کلیدی public Enum  استفاده کرده‌ایم. در این کد، متغیر Animal  با نوع enum شامل مقادیر ثابت Dog  و Cat  و Elephant  است. از هر جایی در برنامه می‌توان به این مقادیر ثابت دسترسی داشت. یعنی اینکه هر کجا بخواهیم، می‌توانیم حیوانی را در کدهای خود نمایش دهیم. مشخص است که وجود Enum-های عمومی در کدها کاربردهای زیادی دارد.

یک کارت بزرگ بازی در کنار تصویر نمادینی از صفحه کد نویسی - enum در سی شارپ

محل استفاده از Enum-های عمومی و مزایای آن

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

برای نمونه، فرض کنیم در حال توسعه بازی کارت هستیم. در کارت‌بازی چهار شکل اصلی Hearts  و Diamonds  و Clubs  و Spades  وجود دارند. این اشکال در بازی، بسیار مهم هستند. بیشتر کلاس‌های نوشته شده در پروژه بازی باید به اطلاعات مربوط به این شکل‌ها دسترسی داشته باشند.

در کد بالا CardSuit  متغیری با نوع public Enum  است. این enum به صورت عمومی در برنامه تعریف شده است. تمام کلاس‌های برنامه می‌توانند از اطلاعات این متغیر استفاده کنند. وجود متغیرهای Enum به صورت عمومی کاربرد بسیار گسترده‌ای در برنامه‌های زبان سی شارپ دارد. استفاده صحیح از این متغیرها، اجرای کارها را بسیار ساده‌تر می‌کند.

Enum در کلاس های سی شارپ

در داخل کلاس‌های سی شارپ هم می‌توانیم متغیرهایی با نوع Enum تعریف کنیم. این مفهوم مانند مخفی کردن اطلاعات محرمانه در جاهای خاص و مشخص است. در عین حال که اطلاعات محرمانه نزدیک به ما هستند اما به خوبی مخفی شده‌اند.

در کد زیر، کلاسی را تعریف کرده‌ایم. سپس در داخل کلاس متغیری با نوع enum تعریف کردیم. توجه کنید که در هر حالت از کلمه کلیدی public Enum  استفاده کرده‌ایم.

در کدهای بالا متغیر PlanetType  را با نوع public Enum  در کلاس Planet  تعریف کرده‌ایم. اکنون این متغیر مانند یکی از زیرمجموعه‌های کلاس Planet  عمل می‌کند. بنابراین با کمک این enum می‌توانیم نوع تمام اشیاء ساخته شده از کلاس Planet را تشخیص بدهیم. تعریف متغیرهای enum در داخل کلاس، ارتباط و نظم قوی موجود در کدها را نشان می‌دهد. این کار به افزایش خوانایی کدها نیز کمک می‌کند.

آشنایی با کاربردها زبان برنامه نویسی سی شارپ در فرادرس

از زبان برنامه نویسی #C در حوزه‌های مختلفی استفاده می‌شود. برای مثال می‌توان به ساخت نرم‌افزارهای سازمانی، اپلیکیشن‌های تحت وب و غیره اشاره کرد. فرادرس برای کمک به آشنایی افراد با کاربردهای سی شارپ و یادگیری هرچه بهتر این زبان، فیلم‌های آموزشی پروژه‌محور را تهیه و منتشر کرده است. این فیلم‌ها دو فایده مهم دارند.

  1. روش استفاده از ابزارها و متدهای مختلف را آموزش می‌دهند.
  2. کاربردهای متنوع سی شارپ را معرفی می‌کنند.

در فهرست پایین چند مورد از فیلم‌های آموزشی پروژه محور سی شارپ را معرفی کرده‌ایم. هر کدام از این فیلم‌ها یک روش استفاده خاص از زبان برنامه نویسی #C را آموزش داده‌اند.

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

مجموعه آموزش پروژه‌محور سی‌شارپ #C – مقدماتی تا پیشرفته
با کلیک بر روی تصویر بالا می‌توانید به صفحه اصلی مجموعه فیلم‌های آموزش پروژه‌محور سی شارپ هدایت شوید.

بایدها و نبایدها در زمان استفاده از Enum در سی شارپ

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

ابتدا مطلب را با بیان بهترین روش‌های استفاده از Enum ادامه می‌دهیم.

بهترین روش‌ها برای استفاده از Enum

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

بهترین روش‌ها برای استفاده از Enum
بهترین روش‌ها برای استفاده از Enum

استفاده از نام‌های معنادار برای Enum و اعضای درون Enum

در دنیای برنامه نویسی انتخاب نام‌های صحیح و معنادار یکی از مهم‌ترین نکاتی است که باید رعایت شود. این اصل فقط منحصر به نوشتن و استفاده از enum نیست. بلکه باید در همه بخش‌های برنامه نویسی رعایت شود. استفاده از نام‌های توصیفی و معنادار برای متغیرهای enum و اعضای درون این متغیرها به میزان زیادی خوانایی کدها را افزایش می‌دهد. عدم رعایت این نکته، مخصوصا بعد از گذشت مدت زمان طولانی می‌تواند ساختار کدها را به معما تبدیل کند.

در پایین، شکل غلط کدنویسی را نمایش داده‌ایم.

در مثال بالا، به شکل بدی کدهای برنامه را نوشته‌ایم. نام متغیر enum را x  گذاشته و اعضای آن را v1 و v2 و v3 نامیده‌ایم. اما این ساختار نشان‌دهنده چیست. هر کسی به غیر از نویسنده کد در خواندن و درک هدف این بخش‌ از کد حتما به مشکل می‌خورد.

شکل صحیح نوشتن کد را در کادر زیر نمایش داده‌ایم.

در کدهای بالا روش صحیح نوشتن برنامه رعایت شده است. نام enum را TrafficSignal  گذاشته و اعضای درون آن را Red  و Yellow  و Green  نامیده‌ایم. هر کسی با توجه به این کد‌ها بلافاصله متوجه می‌شود که ساختار چراغ راهنمایی در سر چهار‌راه‌ها را پیاده‌سازی کرده‌ایم.

عدم استفاده از Enum وقتی که تعداد اعضا مشخص نیست.

وقتی که تعداد اعضای مورد نیاز در زمان کامپایل مشخص نیست نباید از متغیر enum استفاده کرد. enum ساختاری با مقدار ثابت دارد. یعنی اینکه تحت هیچ‌ شرایطی نمی‌توان مقادیر موجود در متغیر enum را تغییر داد.

در کادر زیر، روش غلط کد نویسی با enum را پیاده‌سازی کردیم. البته مقادیر درون این متغیر را تغییر نداده‌ایم اما از واحد دما در آن استفاده کرده‌ایم. درحالی که دما متغیر بوده و هیچ وقت ثابت نیست.

در مثال بالا متغیر Temperature  از نوع enum تعریف شده است. تلاش کرده‌ایم تا با کمک این متغیر دماهای انجماد و جوش آب را نمایش دهیم. اما دما موجودیتی متغیر است و می‌تواند شامل محدوده متنوعی باشد.

حرف C بزرگ بر روی یک دایره و چند مربع رنگی در اطراف آن

برای ذخیره دماهای خاصی مانند نقاط جوش و انجماد، بهتر است که از متغیر‌های سی شارپ یا ثابت‌ها استفاده کنیم. شکل صحیح نوشتن کدهای این برنامه را در کادر زیر پیاده‌سازی کرده‌ایم.

در مثال بالا، به منظور ذخیره و نمایش نقاط جوش و انجماد آب، به‌جای استفاده از نوع enum از «ثابت‌ها» (Constants) استفاده کرده‌ایم.

تعریف صریح نوع Enum با توجه به نیاز برنامه

نوع Enum برای ذخیره مقادیر خود از Int استفاده می‌کند. بعضی از اوقات، مقادیر ذخیره شده به میزان حافظه کمتری نسبت به مقدار مورد نیاز برای Int نیاز دارند. در این شرایط، بهتر است که این مقدار را به شکل صریح در زمان تعریف Enum مشخص کنیم.

استفاده از انواع داده کوچکتر برای تعریف Enum، به بهره‌وری بیشتر در مصرف حافظه کمک می‌کند. در کادر زیر، نمونه‌ای از کدهای بد را می‌بینید. در این کدها به مسئله گفته شده در بالا توجهی نشده است.

در کدهای بالا متغیری از نوع enum و با نام Direction  تعریف کرده‌ایم. می‌دانیم که متغیر enum به صورت پیش‌فرض از مقدار حافظه مورد نیاز برای نگهداری متغیر‌های Int استفاده می‌کند. یعنی در واقع به ازای هر مقدار 4  بایت حافظه مصرف می‌شود.

کد بالا را به روش بهتری هم می‌توان نوشت.

در کد بالا متغیر enum Direction  را با کمک کلمه byte  تعریف کرده‌ایم. این کار باعث شده است که کامپایلر برای ذخیره‌سازی هر مقدار در متغیر Direction  از 1  بایت حافظه استفاده کند.

در ادامه خطاهایی را معرفی کرده‌ایم که معمولا در زمان استفاده از enum روی می‌دهند.

رایج‌ترین اشتباهات در زمان استفاده از Enum در سی شارپ

برای ورود به دنیای برنامه‌ نویسی و انتخاب این شغل باید از مشکلات و اشتباهات رایج در آن‌ هم مطلع باشیم. بعضی وقت‌ها خطاهای رایج و پیش پا افتاده می‌‌توانند برنامه‌های خوب را به مجموعه‌ای از خطاها تبدیل کنند.

رایج‌ترین اشتباهات در زمان استفاده از Enum در سی شارپ
رایج‌ترین اشتباهات در زمان استفاده از Enum در سی شارپ

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

اختصاص شماره یکسان به مقادیر مختلف درون متغیر Enum

همین‌طور که گفتیم به طور پیش‌فرض شماره‌هایی از صفر به بالا به مقادیر درون Enum اختصاص پیدا می‌کنند. اما برنامه نویسان هم می‌توانند شماره‌های دلخواه خود را به این مقادیر اختصاص دهند. باید حتما دقت کنیم که شماره یکسانی را به دو مقدار مختلف تخصیص ندهیم. Enum

این مسئله می‌تواند باعث سردرگمی شده و خوانایی کدها را کمتر کند. انجام این کار اصلا توصیه نمی‌شود. در کادر پایین، شکل غلط این روش کدنویسی را نمایش داده‌ایم.

در مثال بالا، به هر دو مقدار Key1  و Key2  شماره یکسانی تخصیص داده شده است. این کد به روش کاملا اشتباهی نوشته شده است. استفاده از کد بالا ممکن است باعث بروز خطا در برنامه شود.

در کادر پایین، روش صحیح نوشتن کد و تخصیص شماره به مقادیر را نشان داده‌ایم.

در مثال بالا، به هر کدام از مقادیر موجود در متغیر UniqueKey  شماره مجزایی اختصاص داده شده است.

بی‌توجهی به شماره مقادیر درون متغیر Enum

نسبت به شماره پیش‌فرض مقادیر قرار گرفته در متغیر Enum بی‌توجهی نکنید. این شماره همیشه از ۰ شروع می‌شود. اما شاید در برنامه خاصی لازم شود که از شماره‌های دیگری استفاده کنیم. نکته بعدی این است که برای هر کدام از مقدارهای درون متغیر enum به اندازه یک واحد Int حافظه تخصیص داده می‌شود. بی‌توجهی به این موارد ممکن است به مشکل بزرگی تبدیل شود.

لپتاپ باز در کنار یک گلدان در حال نشان دادن صفحه کد نویسی

در کادر پایین روش غلط نوشتن کد را نمایش داده‌ایم.

در کد بالا، به مقدار Saturday شماره ۰ اختصاص داده می‌شود. در حالی که اگر بخواهیم از شماره‌ روز‌های هفته استفاده کنیم، باید شماره Saturday برابر با ۱ باشد.

برای اختصاص دادن مقدار درست به روز‌های هفته، دو روش مختلف وجود دارند. هم می‌توانیم به صورت دستی به مقادیر درون متغیر enum شماره اختصاص دهیم و هم می‌توانیم از روش زیر، استفاده کنیم.

متغیر Days  در بالا از نوع enum تعریف شده است. به این متغیر مقداری اضافی به نام NullDay  افزوده‌ایم. شماره این مقدار را هم برابر با 0  قرار دادیم. در نتیجه بقیه روز‌های هفته با شماره 1  شروع می‌شوند. این روش با قوانین مربوط به enum همخوانی دارد. زیرا به شکل پیش‌فرض مقادیر درون enum با شماره 0  شروع می‌شوند. شماره 1  هم به صورت خودکار به روز اول هفته اختصاص داده می‌شود.

جمع‌بندی

در این مطلب از مجله فرادرس با Enum در سی شارپ، آشنا شدیم. متغیر Enum مجموعه‌ای از ثابت‌ها است که با یکدیگر مرتبط هستند. نام این مجموعه، همان نام متغیر Enum است. به صورت پیش‌فرض برای هر کدام از مقدارهای درون متغیر Enum به اندازه یک واحد داده عدد صحیح یا int  حافظه اختصاص داده می‌شود. استفاده از Enum، خوانایی و قابلیت نگهداری کدها را بیشتر می‌کند. البته به جای ثابت‌های عددی باید از نام‌های با معنی، استفاده کنیم. برای تعریف Enum به راحتی می‌توانیم از سینتکس enum { enumeration list }; استفاده کنیم.

Enum-ها متغیرهایی با نوع‌دهی قوی هستند. بنابراین برای تبدیل نوع متغیر Enum به عدد و برعکس باید به شکل صریح این مطلب را در کدها بنویسید. شماره مقادیر درون متغیر Enum به صورت پیش‌فرض از صفر شروع می‌شوند. مگر اینکه توسعه‌دهنده به صورت دستی شماره دیگری به آن‌ها اختصاص بدهد. نمی‌شود از محیط بیرون به متغیر‌های Enum تعریف شده در کلاس یا «Struct» دسترسی داشت. توسعه‌دهندگان سی شارپ برای کسب مهارت و انجام پروژه‌های بزرگ باید با انواع داده در سی شارپ آشنا باشند. یکی از خاص‌ترین این نوع‌ها هم Enum است.

بر اساس رای ۰ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
ByteHidetutorialspoint
دانلود PDF مقاله
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *