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

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

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

הוספת טקסט אם קיים טקסט C#

מתוזמן נעוץ נעול הועבר ארכיון code613m
9 פוסטים 4 כותבים 546 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • א מנותק
    א מנותק
    ארכיטקט
    כתב ב נערך לאחרונה על ידי
    #1

    שלום יש לי את הקוד הבא
    באם קיים ערך בשדה תיאור, הוא מוסיף את המילה "הסבר" וכן עוטף את הכל בסוגריים.

    ((d.Description != null )? "(הסבר: " + d.Description + ")":"")
    

    האם ידוע למישהו על רעיון יותר קצר ונקי??? או שזה הכי קצר שיש.

    למה זה לא נראה לי מספיק טוב, בגלל שלכאורה הוא עובר על השדה d.Description פעמיים, פעם אחת בשביל בדיקה, ופעם שניה בשביל להוסיף לטקסט, אני הייתי רוצה שבכל מקרה הוא יעבור עליו רק פעם אחת, אם הוא null הוא ממילא מדלג עליו, ואם הוא מלא, הוא פשוט מוסיף אותו ומוסיף את הטקסט הנדרש.
    אז נניח שבשדה פשוט זה לא נורא, אבל מה יהיה אם זאת פונקציה שמשחשבת את המרחק הנוכחי בין כל הכוכבים בשביל החלב עם 26 מימדים לפי תורת המיתרים העדכנית ביותר??? אז יבואו ויאמרו שצריך להכניס את התוצאה למשתנה ואז לעבור עליו, אבל שוב, זה הסימפטום, זה עצמו אומר שהקוד לא מספיק טוב.

    פורסם במקור בפורום CODE613 ב17/02/2014 18:57 (+02:00)

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

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

      @ארכיטקט

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

      איך זה שייך? הרי מוכרחים לבדוק לפני שמחליטים ? אז יש פה בהכרח שלב בדיקה ושלב השמה.

      פורסם במקור בפורום CODE613 ב17/02/2014 19:13 (+02:00)

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

        @רחמים

        איך זה שייך? הרי מוכרחים לבדוק לפני שמחליטים ? אז יש פה בהכרח שלב בדיקה ושלב השמה.

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

        פורסם במקור בפורום CODE613 ב17/02/2014 19:20 (+02:00)

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

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

          בדוט נט לפי הידוע לי טיפוסים 'פרימיטיביים' כמו מספרים ומחרוזות לא מועברים כמצביעים אלא כעותקים מה שנקרא by value אבל מערכים ומחלקות מועברים עם מצביע.
          בכל מקרה אם Description זה פונקציה של get לא יעזור מצביע כי לעולם לא נדע מה הערך שהפונקציה מחזירה עד שנריץ אותה, אז חייבים משתנה שיקבל את ערך הפונקציה.
          האם המהדר כזה חכם שיכניס את הערך המוחזר מהפונקציה למשתנה? זה כבר שייך לאופטמיזציה, שלא כדאי לך לסמוך עליה אלא תעשה את זה מפורש בקוד.

          פורסם במקור בפורום CODE613 ב17/02/2014 19:24 (+02:00)

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

            @ארכיטקט

            שלום יש לי את הקוד הבא
            באם קיים ערך בשדה תיאור, הוא מוסיף את המילה "הסבר" וכן עוטף את הכל בסוגריים.

            ((d.Description != null )? "(הסבר: " + d.Description + ")":"")
            

            האם ידוע למישהו על רעיון יותר קצר ונקי??? או שזה הכי קצר שיש.

            למה זה לא נראה לי מספיק טוב, בגלל שלכאורה הוא עובר על השדה d.Description פעמיים, פעם אחת בשביל בדיקה, ופעם שניה בשביל להוסיף לטקסט, אני הייתי רוצה שבכל מקרה הוא יעבור עליו רק פעם אחת, אם הוא null הוא ממילא מדלג עליו, ואם הוא מלא, הוא פשוט מוסיף אותו ומוסיף את הטקסט הנדרש.
            אז נניח שבשדה פשוט זה לא נורא, אבל מה יהיה אם זאת פונקציה שמשחשבת את המרחק הנוכחי בין כל הכוכחים בשביל החלב עם 26 מימדים לפי תורת המיתרים העדכנית ביותר??? אז יבואו ויאמרו שצריך להכניס את התוצאה למשתנה ואז לעבור עליו, אבל שוב, זה הסימפטום, זה עצמו אומר שהקוד לא מספיק טוב.

            כשתשתמש בפונקציה שמשחשבת את המרחק הנוכחי בין כל הכוכחים בשביל החלב עם 26 מימדים לפי תורת המיתרים העדכנית ביותר, באמת תעשה משתנה ותבדוק אותו, (אני לא רואה בזה בעייה שבקוד לא מספיק טוב....) ובסתם פנייה לשדה בDB, תשתמש ככה :x , לכאורה זה הכי קצר שיש, וגם אם המהדר יעשה את העבודה בשבילך (והוא לא), זה ייקח אותו זמן....

            פורסם במקור בפורום CODE613 ב17/02/2014 20:19 (+02:00)

            אין טסט כמו פרודקשן.

            המייל שלי urivpn@gmail.com

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

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

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

              פורסם במקור בפורום CODE613 ב18/02/2014 10:36 (+02:00)

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

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

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

                @דוד ל.ט.

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

                אני קצת מעורפל בזה אבל קראתי פעם מאמר שב WPF הם עשו בשביל זאמל מאפיינים מסויימים לפקדים, שנטענים פעם אחת ומשרתים את כל הפקדים הרלוונטיים, כדי לחסוך בזיכרון, מה שהשתמע לי משם זה שמאפיינים בדוט נט אמורים "כן" להיות חכמים ולחסוך במידת האפשר בזיכרון, אבל אולי מדובר על מאפיינים שאינם מריצים קוד אינני יודע, הסברא היא כמ"ש, אבל כנראה שזה קשור לקרביים של CLR 😉

                פורסם במקור בפורום CODE613 ב18/02/2014 13:13 (+02:00)

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

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

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

                  פורסם במקור בפורום CODE613 ב18/02/2014 14:41 (+02:00)

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

                    ארכיטקט העניינים ממש לא מסובכים כמו שנראה לך...
                    מאפיין זה סה"כ פונקציה מחזירה ופונקציה מגדירה. כמו כל פונקציה שאנו בונים בתוכנית.
                    בWPF יש מאפיינים מיוחדים (DP) שחוסכים זיכרון כי למאה אובייקטים יש משתנה אחד (נגיד Width - רוחב אלמנט), יש שיתוף משאבים בין כלל האובייקטים בתוכנית.

                    פורסם במקור בפורום CODE613 ב18/02/2014 14:44 (+02:00)

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

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

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

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

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

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