כיצד לדעת האם פקודה חוקית בשפת С#?

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

קודם כל, אתה יכול לנסות להריץ את הפקודות ולראות אם הקוד מתקמפל (יש אפילו קומפיילרים אונליין לדוגמת OnlineGDB).

נעבור אל השורות:

  1. חוקית. הפלט יהיה 3 כי זה הערך של המשתנה k שמטיפוס Integer.
  2. חוקית. המערך באורך 6, כלומר הוא מכיל שישה איברים ולכן לגשת לתא השלישי זאת פעולה חוקית. הפלט יהיה 89 כי אינדקסים במערך מתחילים מאפס.
  3. חוקית. יודפס פשוט הטיפוס של המערך System.Int32[] .
  4. לא חוקית. כאמור, המערך באורך 6 ולכן a.Length יחזיר לך 6. אבל מאחר והאינדקסים של המערך מתחילים מאפס ולא מאחד אז אין איבר באינדקס שש ולכן אם תנסה לגשת לתא שלא קיים במערך תקבל שגיאה שהיא שגיאת זמן הריצה IndexOutOfRangeException.
  5. חוקית. הפעם a.Length-2 יחזיר לך את הערך 4 (כי אורך המערך הוא שש) והאיבר בתא בעל אינדקס 4 הוא מינוס שמונים, כלומר הפלט הוא -80.
  6. לא חוקית. אורך המערך הוא שש ולכן האינדקס המקסימלי שאתה יכול לגשת אליו הוא חמש. אם תנסה לגשת לתא בעל אינדקס שבע תקבל שוב שגיאת IndexOutOfRangeException.
  7. חוקית. עבור a[k] אנו ניגשים לאינדקס שלוש של המערך ולכן נקבל את הערך 89 שהוא ערך מטיפוס Integer ולכן מוגדר החיבור עם המספר 1 כך שתקבל את הפלט 90.
  8. חוקית. כמו קודם, אתה תקבל את הפלט 9 שהוא חיבור של המספר 89 והמספר -80.