דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. ארכיון code613m
  4. C# פונקציה לטיפול ב enum המוגדר כ flags ?

C# פונקציה לטיפול ב enum המוגדר כ flags ?

מתוזמן נעוץ נעול הועבר ארכיון code613m
16 פוסטים 6 כותבים 989 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • A מנותק
    A מנותק
    avr416
    כתב ב נערך לאחרונה על ידי
    #7

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

    פורסם במקור בפורום CODE613 ב04/07/2016 10:04 (+03:00)

    תגובה 1 תגובה אחרונה
    3
    • Z מנותק
      Z מנותק
      zvi good
      כתב ב נערך לאחרונה על ידי
      #8

      @ארכיטקט

      זה טוב לך?

      בחיפוש זה עלה לי בתוצאה הראשונה אבל לא הצלחתי להבין מה הוא עושה שם
      אולי יש לי חסר בידע בסיסי בעניין
      אנסה להסביר מה ידוע לי ומה אני צריך ורוצה לעשות אולי זה יעזור לעזור לי 😉

      לדוגמה יצרתי enum של ימים כך

      public enum Days
              {
                  Sunday = 1,
                  Monday = 2,
                  Tuesday = 4,
                  Wednesday = 8,
                  Thursday = 16,
                  Friday = 32,
                  Saturday = 64
              };
      

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

      dailyPlanner(Days.Monday | Days.Monday | Days.Sunday);
      dailyPlanner(Days.Sunday);
      

      וכאן יש לי שתי שאלות
      אחת האם הדרך היחידה לקבל את זה בפונקציה הוא כ enum או שאפשרי כמספר?
      ולשאלה העיקרית אני רוצה לבנות את גוף הפונקציה dailyPlanner שמקבלת את ה enum
      איך אני בודק מה התקבל בפונקציה? האם Sunday לבד או גם Monday וכו'...
      תודה על העזרה

      פורסם במקור בפורום CODE613 ב04/07/2016 23:20 (+03:00)

      תגובה 1 תגובה אחרונה
      0
      • רחמיםר מנותק
        רחמיםר מנותק
        רחמים מורחק
        כתב ב נערך לאחרונה על ידי
        #9

        למה לך להסתבך עם ENUM?
        במקום כך:

        dailyPlanner(Days.Monday | Days.Monday | Days.Sunday);
        dailyPlanner(Days.Sunday);
        

        תכתב כך:

        dailyPlanner(Days.Monday, Days.Monday, Days.Sunday);
        dailyPlanner(Days.Sunday);
        

        וגוף הפונקציה יראה כך:

        private static void dailyPlanner(params Days[] days)
                {
                    // ...
                }
        

        כך תוכל לקבל את הימים כמערך ולא תצטרך לחלץ אותם מתוך ערך בודד.

        פורסם במקור בפורום CODE613 ב05/07/2016 07:50 (+03:00)

        תגובה 1 תגובה אחרונה
        0
        • dovidD מנותק
          dovidD מנותק
          dovid ניהול
          כתב ב נערך לאחרונה על ידי
          #10

          אבל רחמים, זה בשביל לחסוך לו להבין אותנו? או לחסוך לך להסביר?
          גם אם הקוד שלך היה חוסך הוא לא במקומו כשהבן אדם אומר לא הבנתי איך עושים אתה אומר תמשיך לא להבין, העיקר הבעיה שלך סודרה...
          ושנית הוא לא טוב: א. הוא מאפשר לשלוח ללא אף יום ב. הרי הימים לא נבחרים ע"י המתכנת בזמן עיצוב... וע"י קלט המשתמש אתה צריך להוסיף את הימים שנבחרו - יצירת List - אז מה הועלנו עם הparams... בEnum אתה חוסך לבדוק כפילויות אבל זה לא כ"כ הפואנטה.

          zvi good תמה אני מה לא הבנת בתשובות הכה מפורטות שלנו... ומה בוער לך לקבל כמספר ולא כEnum (אכן, אתה יכול! אבל למה)...

          פורסם במקור בפורום CODE613 ב05/07/2016 10:58 (+03:00)

          מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

          בכל נושא אפשר ליצור קשר dovid@tchumim.com

          תגובה 1 תגובה אחרונה
          0
          • רחמיםר מנותק
            רחמיםר מנותק
            רחמים מורחק
            כתב ב נערך לאחרונה על ידי
            #11

            לדעתי הפתרון הזה יותר טוב מאשר ENUM, כי מן הסתם הוא מקבל את הימים הנבחרים מהמשתמש שבחר ימים בתוך ליסט-בוס, והכי קל זה להעביר לפוקנציה dailyPlanner את רשימת הנבחרים בליסט-בוס הנ"ל כרשימה או מערך, מאשר להמיר את כולם לערך ENUM.
            אבל אם הוא עובד עם דטה-ביס ורוצה לשמור את הימים שנבחרו, אז בהחלט עדיף לשמור כENUM שהוא ערך בודד שמכיל הרבה ערכים מאשר לשמור רשימה בתוך המסד נתונים.

            @דוד ל.ט.

            א. הוא מאפשר לשלוח ללא אף יום ב. הרי הימים לא נבחרים ע"י המתכנת בזמן עיצוב... וע"י קלט המשתמש אתה צריך להוסיף את הימים שנבחרו - יצירת List - אז מה הועלנו עם הparams... בEnum אתה חוסך לבדוק כפילויות אבל זה לא כ"כ הפואנטה.

            א. אפשר להוסיף שורה כזו:

            private static void dailyPlanner(params Days[] days)
                    {
                        if (days == null || days.Length == 0) throw new ArgumentException("days");
                        // ...
                    }
            

            ב. לא הבנתי "להוסיף את הימים שנבחרו - יצירת List" ? הימים הנבחרים נמצאים במערך שנקרא days אז מה הבעיה?

            פורסם במקור בפורום CODE613 ב05/07/2016 11:31 (+03:00)

            תגובה 1 תגובה אחרונה
            0
            • dovidD מנותק
              dovidD מנותק
              dovid ניהול
              כתב ב נערך לאחרונה על ידי
              #12

              רחמים, פתח אשכול חדש.

              פורסם במקור בפורום CODE613 ב05/07/2016 11:44 (+03:00)

              מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

              בכל נושא אפשר ליצור קשר dovid@tchumim.com

              תגובה 1 תגובה אחרונה
              0
              • S מנותק
                S מנותק
                softs
                כתב ב נערך לאחרונה על ידי
                #13

                שימוש קלאסי ב Flags הוא במקרה של צורך בהעברת אוסף של הגדרות True\False שלא תלויות זו בזו לפונקציה מסוימת
                כמו ב MessageBox לדוגמה, מה יהיה האייקון והאם ייושר לימין וכו', זה קריא, פשוט וחסכוני.
                ל Enum שלא מוגדר כ Flags יש עוד שימושים כמו הגבלת קלט לפונקציה.

                הגישה של למה להסתבך ממש מעצבנת אותי, מתכנת צריך לשאוף להכיר כל אבן מאבני הבנין של התכנות על בוריה, ואחר כך מתוך עמדה של ידע להחליט במה להשתמש ובמה לא.

                פורסם במקור בפורום CODE613 ב05/07/2016 11:55 (+03:00)

                תגובה 1 תגובה אחרונה
                3
                • רחמיםר מנותק
                  רחמיםר מנותק
                  רחמים מורחק
                  כתב ב נערך לאחרונה על ידי
                  #14

                  @דוד ל.ט.

                  רחמים, פתח אשכול חדש.

                  עם איזה נושא?

                  פורסם במקור בפורום CODE613 ב05/07/2016 12:55 (+03:00)

                  תגובה 1 תגובה אחרונה
                  0
                  • א מנותק
                    א מנותק
                    ארכיטקט
                    כתב ב נערך לאחרונה על ידי
                    #15

                    @softs

                    הגישה של למה להסתבך ממש מעצבנת אותי, מתכנת צריך לשאוף להכיר כל אבן מאבני הבנין של התכנות על בוריה, ואחר כך מתוך עמדה של ידע להחליט במה להשתמש ובמה לא.

                    הבטחתי בלי נדר שאני לא מעלה את הנושא של דת ומדינה כדי לראות האם אני תמיד אשם בויכוחים הללו, והנה זה הגיע :lol: :lol: :lol:

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

                    פורסם במקור בפורום CODE613 ב05/07/2016 13:34 (+03:00)

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

                    תגובה 1 תגובה אחרונה
                    0
                    • dovidD מנותק
                      dovidD מנותק
                      dovid ניהול
                      כתב ב נערך לאחרונה על ידי
                      #16

                      @רחמים

                      @דוד ל.ט.
                      רחמים, פתח אשכול חדש.

                      עם איזה נושא?

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

                      פורסם במקור בפורום CODE613 ב05/07/2016 15:03 (+03:00)

                      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                      בכל נושא אפשר ליצור קשר dovid@tchumim.com

                      תגובה 1 תגובה אחרונה
                      0

                      בא תתחבר לדף היומי!
                      • התחברות

                      • אין לך חשבון עדיין? הרשמה

                      • התחברו או הירשמו כדי לחפש.
                      • פוסט ראשון
                        פוסט אחרון
                      0
                      • דף הבית
                      • קטגוריות
                      • פוסטים אחרונים
                      • משתמשים
                      • חיפוש
                      • חוקי הפורום