טבת

שידוך בין פריטי enum למתודות

קטע קוד של switch יכול להסתבך בקלות רבה. כל הקוד נכנס לתוך מתודה אחת, וחלקים ממנה נקראים כמה פעמים. במקרים רבים, קטע switch מתבסס על enum. חוץ מזה, ב-#C אי אפשר לעבור ממקרה (case) אחד לשני ע”י fall-through.
פתרון יפה להסרת הסיבוכיות של switch-ים היא שימוש ב-

Dictionary<enum,delegate>

כך אפשר לחבר כל אלמנט של ה-enum למתודה משלו. אפשר לקרוא למתודה הנכונה עבור כל enum אפשרי. עוד דבר נחמד שמתאפשר זה לקרוא למתודה אחת ממתודה אחרת.
בפתרון הזה, שנכתב ב-code project, הדוגמה היא מאד פשטנית – הכנה של תבשילים מבוססי פירות – אבל בזכות זה היא קלה להבנה. בד”כ כל מה שקשור ל-delegate נראה מפחיד ומסוכן, אבל כאן יש שימוש לא מסובך ואפילו ידידותי ב-delegate, מה שמאפשר להתיידד איתם, ןזה טוב במיוחד בעידן זה של anonymous methods ו-lambda expressions.

כתבו תגובה

כתובת הדוא"ל שלכם לא תוצג.