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

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

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

האם אפשר לקבל אפקט של מצביע בדוטנט ?

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

    יש לי למשל מערך כזה:

    Structure myStrc
            Dim A As Integer
            Dim B As Integer()
        End Structure
    
        Private mainArr(10)() As myStrc
    

    בשלב ראשון אני עובר על עשרת האיברים של mainArr ובכל איבר אני שם מערך של myStrc שבכל myStrc יש ערך ל A אבל ה B בנתיים נשאר ריק
    בשלב שני אני עובר שוב על כל mainArr ומכניס לליסט מסוג IList(Of T) כמה myStrc נבחרים על פי איזה התאמה.

    בשלב שלישי אני עובר שוב על mainArr ומגדיר את משתנה B שבכל myStrc

    ומה שקורה זה ש myStrc שבתוך הליסט לא מתעדכן ומשתנה B נשאר ריק, אם הייתי עושה את זה ב C++ הוא היה מתעדכן כי הליסט היה מצביע myStrc שבתוך mainArr ולא מחזיק עותק של myStrc.

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

    פורסם במקור בפורום CODE613 ב06/04/2014 09:14 (+03:00)

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

      Structure עשוי להיות הפניה לפי ערך. השמה שלו היא למעשה העתקה, וממילא אין דרך להחזיק התייחסות אליו.
      ייתכן שיש דרך ע"י מצביעים, אני לא בטוח, אבל בכל מקרה הנחיות בתכנות הם ש[u:dxpie7is]לא עושים בכזה מקרה Structure.[/u:dxpie7is]

      הנה הכללים (של מקרוסופט) מתי לעשות Structure, אני פשוט תרגמתי מפה Choosing Between Class and Struct:
      [list:dxpie7is]

      1. המבנה מייצג לוגית ערך בודד.
      2. סך הזיכרון של השדות עד 16 בתים.
      3. [u:dxpie7is]בלתי ניתן לשינוי[/u:dxpie7is] זה בשביל "למנוע אי הבנות ובאגים".
      4. לא אמור לעבור Boxing (המרה להתייחסות) לעיתים קרובות.
        [/list:u:dxpie7is]

      בכל מקרה אחר יש להשתמש במחלקה.
      ראה גם: http://programmers.stackexchange.com/a/92369/112215

      פורסם במקור בפורום CODE613 ב06/04/2014 13:15 (+03:00)

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

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

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

        בהתחלה עשיתי מחלקה אבל שמתי לב להאטה, עם מחלקה הפעולה מסתיימת בכפול זמן מאשר עם סטרוקטורה! כך זה בכל מקרה בקוד שלי כאשר השינוי היחיד הוא שבמקום Structure myStrc אני כותב Class myStrc

        @דוד ל.ט.

        ייתכן שיש דרך ע"י מצביעים, אני לא בטוח

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

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

        פורסם במקור בפורום CODE613 ב06/04/2014 13:37 (+03:00)

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

          מחלקה היא מצביע לכל דבר.

          ובקשר לביצועים, נסה לשנות את התכנון שלך. או שלא תשנה כלל, או שתשנה ידנית בכל מקום, או וכו'

          פורסם במקור בפורום CODE613 ב06/04/2014 13:41 (+03:00)

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

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

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

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

            פורסם במקור בפורום CODE613 ב06/04/2014 13:43 (+03:00)

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

              @רחמים

              את התכנון אני משפר בכל עת בלא קשר לנושא הנידון

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

              פורסם במקור בפורום CODE613 ב06/04/2014 14:15 (+03:00)

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

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

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

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

                פורסם במקור בפורום CODE613 ב06/04/2014 14:19 (+03:00)

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

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

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

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