מדריך C# – עבודה עם enum

‏ • Sela

בחלק זה נלמד כיצד ליצור טיפוסים חדשים מסוג enum.

מהו טיפוס מסוג enum?

טיפוס מסוג enum הוא טיפוס שיכול לקבל ערכים רק מתוך קבוצה קטנה של ערכים.
לדוגמא, ניתן להגדיר טיפוס מסוג enum בשם Month שיוכל לקבל רק אחד מהערכים הבאים:

כיצד עובדים עם enum?

ראשית יש להגדיר את הטיפוס החדש, משתמשים במילה enum בשביל לציין שזהו טיפוס מסוג enum, לאחר מכן נותנים את שם הטיפוס ולאחריו את רשימת הערכים מופרדת בפסיקים.

לדוגמא, הקוד הבא מגדיר enum בשם Month המכיל את ערכי החודשים השונים:

enum Month
{
    January,
    February,
    March,
    April,
    May,
    June,
    July,
    August,
    September,
    October,
    November,
    December
}

נציין שהגדרת הטיפוס צריכה להיות מחוץ לפונקציית ה Main ואפילו מחוץ למחלקה Program שכן אנחנו מגדירים טיפוס חדש.

כעת נוכל להשתמש בטיפוס החדש בתוכנית הראשית:

static void Main(string[] args)
{
    Month myMonth = Month.December;
   
Console.WriteLine(myMonth);
}

 

מתי נשתמש בenum?

השימוש בטיפוס מסוג enum עוזר לקריאות של התוכנית ומונע שגיאות.

לדוגמא, התבוננו בקטע הקוד הבא:

if ((documentState == 1) && (userSelection == 2))
{
    SaveDocument();
}
else if ((documentState == 1) && (userSelection == 1))
{
    DiscardDocument();
}

לא ברור מה הייתה כוונת המשורר, מה מייצגים המספרים 1,2 והאם יש להם משמעות יחידה.

לעומת זאת, אותו הקטע תוך שימוש בenum יראה בצורה הרבה יותר ברורה:

if ((documentState == DocumentState.NotSaved) && 
    (userSelection == DocumentOperation.Save))
{
    SaveDocument();
}
else if ((documentState == DocumentState.NotSaved) &&
         (userSelection == DocumentOperation.Discard))
{
    DiscardDocument();
}

כאשר במקרה זה נגדיר שני טיפוסים מסוג enum באופן הבא:

enum DocumentOperation
{
    Load,
    Save,
    Discard
}

enum DocumentState
{
    Saved,
    NotSaved
}

תגיות: , , ,

arikp

אריק פוזננסקי הוא יועץ בכיר ומרצה בסלע. הוא השלים שני תארי B.Sc. במתמטיקה ומדעי המחשב בהצטיינות יתרה בטכניון. לאריק ידע נרחב בטכנולוגיות מיקרוסופט, כולל .NET עם C#, WPF, Silverlight, WinForms, Interop, COM/ATL, C++ Win32 ו reverse engineering.

תגובות בפייסבוק

חדש! אחסון אתרים של וובמאסטר

שירות אחסון אתרים
המקצועי של וובמאסטר!

מומחים באירוח אתרי
WordPress, Joomla, Drupal

  • שרתי לינוקס עם CloudLinux, LiteSpeed
  • 1GB דיסק SSD, 10GB תעבורה חודשית
  • ממשק ניהול cPanel, תעודת SSL חינם

עכשיו במחיר היכרות:
רק 420 ש"ח לשנה!