בית התפתחות מהו סוג הניתן לשינוי? - הגדרה מטכנולוגיה

מהו סוג הניתן לשינוי? - הגדרה מטכנולוגיה

תוכן עניינים:

Anonim

הגדרה - מה המשמעות של סוג mutable?

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


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


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

Techopedia מסביר Mutable Type

כל סוגי הערכים המובנים כמו int, כפול וכו ', הם סוגים הניתנים להחלפה וניתן להפוך אותם ללא שינוי על ידי הוספת השינוי "באופן קריא" לפני המשתנים. אם מוגדר סוג הפניה להשתנה עם שינוי קריא, המהדר C # יפיק אזהרה. על ידי הוספת שינוי קריא לשדה מסוג ההפניה, לא ניתן להחליף את השדה במופע אחר מסוג ההפניה, אך יאפשר לשנות את נתוני המופעים של השדה דרך סוג ההתייחסות.


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


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


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

הגדרה זו נכתבה בהקשר של C #
מהו סוג הניתן לשינוי? - הגדרה מטכנולוגיה