TGViewer
Software Philosophy Software Philosophy @softwarephilosophy · 3.48K subscribers
Post #2346 1.31K
تعریف Enum

#csharp_for_beginners

یک Enum در واقع نوع داده‌ای سفارشی است که مجموعه‌ای از ثابت‌های عددی نام‌گذاری‌شده را در خود نگه می‌دارد. برای مثال:

enum Season
{
Spring,
Summer,
Autumn,
Winter
}


در اینجا، اعضا به ترتیب دارای مقادیر عددی 0، 1، 2 و 3 هستند. نوع پایه‌ی Enum به‌صورت پیش‌فرض int است، اما می‌توان آن را تغییر داد.

تعیین نوع پایه و مقادیر صریح


می‌توان نوع پایه و مقادیر اعضا را به‌صورت دستی مشخص کرد:

enum ErrorCode : ushort
{
None = 0,
Unknown = 1,
ConnectionLost = 100,
OutlierReading = 200
}


در این مثال، نوع پایه ushort است و هر عضو مقدار خاص خود را دارد.

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

تبدیل عددی به Enum مجاز است، اما اگر مقدار عددی به هیچ عضو مشخصی مربوط نباشد، نتیجه ممکن است نامعتبر باشد.

کاربردهای Enum

۱. انتخاب از میان چند مقدار مشخص
یک Enum زمانی مفید است که بخواهیم متغیری یکی از چند مقدار مشخص را بگیرد. مثلاً برای وضعیت سفارش یا فصل سال:

enum OrderStatus
{
Pending,
Processing,
Shipped,
Delivered
}


۲. استفاده به‌صورت ترکیبی (Flags)
گاهی لازم است چند مقدار با هم ترکیب شوند. در این حالت از ویژگی [Flags] استفاده می‌کنیم و مقادیر را به‌صورت توان‌های دو تعریف می‌کنیم:

[Flags]
public enum Days
{
None = 0,
Monday = 1,
Tuesday = 2,
Wednesday = 4,
Thursday = 8,
Friday = 16,
Saturday = 32,
Sunday = 64,
Weekend = Saturday | Sunday
}



جمع‌بندی
ابزار Enum یکی از ابزارهای ساده اما قدرتمند در سی‌شارپ است که به شما کمک می‌کند مجموعه‌ای از مقادیر ثابت را با نام‌های قابل فهم تعریف کنید. این کار باعث افزایش خوانایی، کاهش خطا و بهبود نگهداری کد می‌شود. با رعایت چند قاعده‌ی ساده —مثل داشتن عضو صفر، اعتبارسنجی مقادیر و استفاده‌ی درست از [Flags]— می‌توان Enumهایی ساخت که در پروژه‌های واقعی بسیار کاربردی و ایمن باشند.

🔗 مطلب کامل را در این لینک می‌توانید مطالعه کنید.

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنت‌ها به اشتراک بگذارید.

کانال تلگرام:
@SoftwarePhilosophy

______
Docs Enumeration types - C# reference Learn about C# enumeration types that represent a choice or a combination of choices
  • 👍 9
  • ❤ 3
More from @softwarephilosophy
  1. Sep 27, 2026نگو JEV بگو System One! دنیل کانمن (Daniel Kahneman) توی کتاب معروفش «تفکر، سریع و کند» (T…
  2. Sep 23, 2026بازنویسی کل GitHub Copilot Runtime با Rust 🔶 حدود ۱۲۰،۰۰۰ دلار هزینه توکن و سه هفته وقت ی…
  3. Sep 15, 2026ورک‌شاپ «AI Agents in C# (MAF)» در این ورک‌شاپ به بررسی امکانات جدید برنامه‌نویسی با کتابخ…
  4. Sep 12, 2026کد مدریت شده (Managed Code) در دات‌نت یعنی چی؟ ▫️به زبان ساده: کد مدریت شده (Managed Code)…
  5. Sep 5, 2026آشنایی با Attributeها در سی‌شارپ در سی شارپ، Attributeها برای اضافه کردن metadata یا اطلاع…
  6. Aug 25, 2026اگر در دات نت Agent، MCP Server یا ابزارهای مبتنی بر هوش مصنوعی توسعه میدهی، این پروژه میت…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →