NET/מערכים: הבדלים בין גרסאות בדף

תוכן שנמחק תוכן שנוסף
צחי (שיחה | תרומות)
המרה לתבנית חדשה
צחי (שיחה | תרומות)
הסבר נוסף לגבי Array
שורה 14:
מערך ב-NET. הוא בלתי ניתן לשינוי (immutable). לאחר הגדרתו, לא ניתן לשנות את גודלו, אלא את הערכים של איבריו בלבד.
 
בדומה לשפות אחרות ממשפחת [[שפת C]], גם ב-C#C הגישה אל איברים במערך נעשית בעזרת אינדקס, כאשר האיבר הראשון ממוספר באפס. כדי לקבל את האיבר הראשון במערך שהוגדר לעיל, נכתוב
{{NET/CodeBlock|cs=
{{NET/Code|int|Keyword}} n = intArr[0];}}
 
כמו במשתנים רגילים, גם מערכים לא מחזיקים את האובייקט עצמו, אלא רק התייחסות למיקומו בזיכרון.
כל המערכים ב-NET. הם למעשה אובייקטים של המחלקה [[NET/Array|System.Array]]. מחלקה זו מממשת את הממשקים [[NET/IList|IList]] ו-[[NET/IEnumerable|IEnumerable]] הנפוצים במחלקות מבני הנתונים של NET. משתנה מסוג מערך מכיל את השגרות של מחלקה זו. המחלקה גם מכילה מספר שגרות סטטיות שניתן להפעיל על משתני מערך, כדי להשיג מידע עליהם.
 
כל המערכים ב-NET. הם למעשה אובייקטים של המחלקה [[NET/Array|System.Array]]. מחלקה זו מממשת את הממשקים [[NET/IList|IList]] ו-[[NET/IEnumerable|IEnumerable]] הנפוצים במחלקות מבני הנתונים של NET. משתנה מסוג מערך מכיל את השגרות של מחלקה זו. המחלקה גם מכילה מספר שגרות סטטיות שניתן להפעיל על משתני מערך, כדי להשיג מידע עליהם. למעשה תיאורטית ניתן להשתמש ישירות במחלקה <code>Array</code>, אך היא אינה מכילה [[NET/מחלקות - היכרות#בנאים|בנאי]], וניתן ליצור אובייקט שלה רק באחת הדרכים שהוזכרו למעלה. למשל, ההגדרה הבאה היא הגדרה חוקית:
{{NET/CodeBlock|cs=
{{NET/Code|Array|Class}} arr = {{NET/Code|new int|Keyword}}[5];
}}
אך בדרך כלל לא נשתמש בצורה זו.