תוכן עניינים:
הגדרה - מה המשמעות של סוג נכס?
סוג בלתי משתנה, בהקשר של C #, הוא סוג של אובייקט שלא ניתן לשנות את נתוניו לאחר יצירתו. סוג שאינו ניתן להחלפה מגדיר את המאפיין או את מצב האובייקט כקריאה בלבד מכיוון שלא ניתן לשנות אותו לאחר שהוקצה במהלך האתחול.
סוגים בלתי ניתנים לשינוי מיועדים לניהול זיכרון יעיל ומהירות טובה יותר, מה שהופך אותם מתאימים לאובייקטים עם דרישות סינכרון. אי-משתנות מספקת קריאות קוד טובה יותר על ידי ביצוע שינויים בנראות מצב התוכנית ובידוד הפעולות שמשנות את המצב מאלה שלא. סוגים בלתי ניתנים לשינוי מספקים אבטחה גבוהה יותר מסוגים הניתנים להחלפה.
סוג שאינו ניתן להחלפה משמש במקום בו הנתונים אמורים להימשך לאחר שהוקצו פעם אחת, אך ללא כל דרישה לשינוי הנתונים בעתיד. מכיוון שאובייקטים בלתי ניתנים לשינוי אינם משנים את מצבם, הם מועילים יותר בתרחישים מרובי חוטים ורב-עיבוד, מכיוון שרבים מחוטים עשויים לקרוא או לכתוב אובייקט, מה שעלול לגרום לתנאי מירוץ ובעיות סינכרון.
Techopedia מסביר סוג Immutable
ניתן ליצור חפצים מסוג בלתי משתנה בעזרת מילות המפתח "const" ו- "readonly". בעוד שבאופן קריא מאפשר שינוי של שדה בתוך הקבלן, const אינו עושה זאת. מספרים, מחרוזות ובטלות יכולים לשמש רק כשדות const, שאינם ניתנים לשינוי באמת. קריאה איננה ניתנת לשינוי באמת מכיוון שהיא מאפשרת לכתוב רק פעם אחת. לפיכך, זה לא קבוע זמן קומפילציה כמו שדה const. עצמים בלתי ניתנים לשינוי באמת אף פעם לא משנים את מצבם הפנימי ולכן הם מטבעם בטוחים בחוט.
כיתת System.String היא סוג התייחסות בלתי ניתנת להחלפה המסופקת בספריית הכיתה. NET Framework. כיתה זו יוצרת אובייקט מחרוזת חדש פנימית לכל פעולת מניפולציה של מחרוזת. תוכן אובייקטים מסוג זה אינו משתנה, אם כי התחביר גורם לו להראות כאילו ניתן לשנות תוכן. בנוסף, מחרוזת משמשת כמפתח טבלת חשיש לחישוב ערכי hash בכדי למנוע את הסיכון לפגוע במבנה נתוני ה- hash.
החיסרון העיקרי של סוגים בלתי ניתנים לשינוי הוא שהם דורשים משאבים רבים יותר מסוגי אובייקטים אחרים.












