וובמאסטר - תיכנות ובניית אתרים

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

arikp ,‏ מכללת סלע‏ ‏/‏ 12 ינואר, 2011
F+
F-

בחלק זה נלמד כיצד ליצור טיפוסים חדשים מסוג 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.
תגיות: C#‏  /  .net‏  /  מדריך‏  /  פיתוח‏  

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

תגובות למאמר



עוד במדריך

תגיות פופולאריות

X
הצטרף לעמוד שלנו בפייסבוק להישאר מעודכן!
וובמאסטר © כל הזכויות שמורות