none
מילה קבועב שמייצגת מספר לכל התוכנית RRS feed

  • שאלה

  • שלום רב

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

    איך אפשר להגדיר ב-C# מילה - נניח SIZE שתהה שווה נניח ל-5 ובכל מקום ומערך אני ארשום שהגודל SIZE ובסוף אני יכול לשנות לכל מספר מבלי לשנות בכל מקום ומקום וליצור טעויות.

    תודה רבה

    יום רביעי 26 פברואר 2020 18:02

תשובות

  • אני חושב שאתה מתכוון לקבוע

    בC# מגדירים קבוע ברמת המחלקה עם המילה const, כך:

    public class MyClass
    {
        public const int Size = 5;
        // ...
        public void MyMethod()
        {
            var arr = new int[Size];
            var arr2 = new float[Size];
            // ...
        }
        // ...
    }

    יום שישי 19 יוני 2020 00:29
  • אהלן,

    לפי הדוגמה נראה שאתה פשוט רוצה להגדיר מערך array עם אורך שנקבע בעזרת משתנה. אם זה מצב אז פשוט תגדיר מערך דינאמי או תשנה את האורך של מערך קיים

    // This is the basic way to declare array like your example's structure
    int[] array1 = new int[5];
    
    
    
    // OPTION 1: this is probably best option
    // but I cannot not be sure siknce I am familiar with your specific case
    
    // You can use collections types like List, ArrayList, Dictionary
    // these allow you to add members to the array instead of having a fixed size array
    
    // OPTION 2: 
    // So if you need then you can create new array in specific size and change the side using the parameter of the Size
    // Assuming your size parameter is MyNewSize
    
    // You can use Array.Resize
    // https://docs.microsoft.com/en-us/dotnet/api/system.array.resize
    Array.Resize(ref array1, MyNewSize);
    



    signature   Ronen Ariely
     [Personal Site]    [Blog]    [Facebook]    [Linkedin]


    יום חמישי 19 מרץ 2020 10:33
    מנחה דיון

כל התגובות

  • שלום רב

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

    איך אפשר להגדיר ב-C# מילה - נניח SIZE שתהה שווה נניח ל-5 ובכל מקום ומערך אני ארשום שהגודל SIZE ובסוף אני יכול לשנות לכל מספר מבלי לשנות בכל מקום ומקום וליצור טעויות.

    תודה רבה

    ברוך הבא לפורום :-)

    לצערי אני לא בטוח שהצלחתי להבין אותך

    לפי התיאור שלך אני מבין שאתה רוצה זה פשוט פרמטר/משתנה בשם Size מסודר int ובכל מקום שאתה צריך לרשום את הגודל שלו את משתמש במשתנה

    זה ההגדרה של משתנה

    אם זה מה שאתה מחפש אז יש לך הסבר קצר בקישור הבא:
    https://www.w3schools.com/cs/cs_variables.asp

    אם זה לא מה שאתה מחפש אז אנא נסה לפרט יותר, ואם אפשר לתת תיאור של דוגמה


    signature   Ronen Ariely
     [Personal Site]    [Blog]    [Facebook]    [Linkedin]

    יום שישי 28 פברואר 2020 16:15
    מנחה דיון
  • תודה רבה

    התכוונתי לשם SIZE שמייצג את המספר נניח 15 ובכל מקום - בלולאת FOR או בהגדרת מערך אני ארשום int[] Name = new int[SIZE].

    המהדר יבין שאני מתכוון ל-15.

    תודה רבה

    יום שלישי 17 מרץ 2020 14:35
  • אהלן,

    לפי הדוגמה נראה שאתה פשוט רוצה להגדיר מערך array עם אורך שנקבע בעזרת משתנה. אם זה מצב אז פשוט תגדיר מערך דינאמי או תשנה את האורך של מערך קיים

    // This is the basic way to declare array like your example's structure
    int[] array1 = new int[5];
    
    
    
    // OPTION 1: this is probably best option
    // but I cannot not be sure siknce I am familiar with your specific case
    
    // You can use collections types like List, ArrayList, Dictionary
    // these allow you to add members to the array instead of having a fixed size array
    
    // OPTION 2: 
    // So if you need then you can create new array in specific size and change the side using the parameter of the Size
    // Assuming your size parameter is MyNewSize
    
    // You can use Array.Resize
    // https://docs.microsoft.com/en-us/dotnet/api/system.array.resize
    Array.Resize(ref array1, MyNewSize);
    



    signature   Ronen Ariely
     [Personal Site]    [Blog]    [Facebook]    [Linkedin]


    יום חמישי 19 מרץ 2020 10:33
    מנחה דיון
  • אני חושב שאתה מתכוון לקבוע

    בC# מגדירים קבוע ברמת המחלקה עם המילה const, כך:

    public class MyClass
    {
        public const int Size = 5;
        // ...
        public void MyMethod()
        {
            var arr = new int[Size];
            var arr2 = new float[Size];
            // ...
        }
        // ...
    }

    יום שישי 19 יוני 2020 00:29
  • עכשיו שאתה מעלה את זה... אולי באמת לזה התכוון המשורר :-)

    ההסבר של Alo21 היה ממש לא ברור לי


    signature   Ronen Ariely
     [Personal Site]    [Blog]    [Facebook]    [Linkedin]

    יום שישי 19 יוני 2020 06:55
    מנחה דיון
  • תודה רבה

    התכוונתי לשם SIZE שמייצג את המספר נניח 15 ובכל מקום - בלולאת FOR או בהגדרת מערך אני ארשום int[] Name = new int[SIZE].

    המהדר יבין שאני מתכוון ל-15.

    תודה רבה

    אתה רוצה ליצור בעצם מערכים בצורה דינמית?

    הכוונה שבמקום לעשות 
    int a = new int[size]
    int b = new int[size]
    ...
    לעשות לולאה שרצה עד מספר כלשהו ויוצרת מערכים בגודל SIZE?
    יום ראשון 21 יוני 2020 20:52
  • אני לא בטוח שמי ששאל את צהשאלה חוזר מכיוון שעבר כבר דיי הרבה זמן 

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


    signature   Ronen Ariely
     [Personal Site]    [Blog]    [Facebook]    [Linkedin]

    יום שני 22 יוני 2020 04:35
    מנחה דיון
  • אני חושב שהוא הגיע מהעולם של C/C++ והוא רצה להגדיר Macro בשם SIZE כפי שנוהגים לעשות ב- C כדי להגדיר "משתנים" שהם למעשה קבועים בזמן קומפילציה (ברמה של התוכנית).

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

    בכל מקרה, מכיוון שהוא לא ענה, כל דבר שנענה לו יהיה בגדר ספקולציה :)

    יום שני 22 יוני 2020 13:35