Съдържание:
Определение - Какво означава мутабелен тип?
Типът мутации в C # е тип обект, чиито членове на данни, като свойства, данни и полета, могат да бъдат променяни след създаването му.
Мутационните типове се използват в паралелни приложения, където обектите от тип на изменяеми стойности се поддържат в стека от общото изпълнение на езика (CLR). Това осигурява известна оптимизация, което го прави по-бърз от разпределените на куп обекти. За да се предотврати появата на грешки при синхронизация в паралелни приложения поради множество нишки, които имат достъп до споделените данни, се използват мутационни типове с някакъв механизъм за заключване.
Поради присъщото си естество, данните за изменяемите типове могат да се променят по време на изпълнение, така че типът сменяем често се използва, когато обектът съдържа голямо количество променливи данни. Въпреки че типът на мутацията не е толкова безопасен за конци и сигурен, колкото неизменният тип, той по-често се използва с променливи от тип стойност, които се разпределят в стека, подобрявайки производителността.
Техопедия обяснява мутационен тип
Всички вградени типове стойности като int, double и т.н. са изменяеми типове и могат да бъдат направени неизменни чрез добавяне на модификатора "само за четене" пред променливите. Ако сменящ се референтен тип е посочен с модификатор за четене, компилаторът C # генерира предупреждение. Чрез добавяне на модификатор за повторно четене към поле на референтен тип, полето не може да бъде заменено с друг екземпляр от референтния тип, но ще позволи данните на екземпляра на полето да бъдат променени чрез референтния тип.
Например, StringBuilder е изменяем референтен тип в библиотеката на .NET Framework, чрез който низовата стойност на екземпляр, създаден от този тип, може да бъде променена чрез добавяне, премахване, замяна или поставяне на знаци.
Сменяемият тип не трябва да се извлича от неизменяем тип, тъй като има възможност виртуален метод в производен клас да го отмени, така че неизменните членове да бъдат презаписани.
Основното ограничение на мутационния тип е, че докато предава обект от мутационен тип (като структура) чрез присвояване на локална променлива или като параметър на метод, стойността на обекта се прехвърля, а не самия обект. По този начин копието на обекта се мутира, а не на оригинала. Това поведение може да доведе до неочаквани грешки.