Съдържание:
Определение - Какво означава Immutable Type?
Неизменният тип в контекста на C # е тип обект, чиито данни не могат да бъдат променени след създаването му. Неизменният тип задава свойството или състоянието на обекта като прочетено само защото не може да бъде променено, след като е присвоено по време на инициализация.
Неизменните типове са проектирани за ефективно управление на паметта и по-добра скорост, което ги прави подходящи за обекти с изисквания за синхронизация. Неизменяемостта осигурява по-добра четимост на кода, като прави промени в видимостта на състоянието на програмата и изолира операциите, които променят състоянието, от тези, които не го правят. Неизменяемите типове осигуряват по-висока сигурност от изменяемите.
Неизменяем тип се използва, когато данните трябва да се запазят, след като бъдат присвоени веднъж, но без изискване данните да бъдат променени в бъдеще. Тъй като неизменните обекти не променят състоянието си, те са по-полезни при многопоточни и многопроцесови сценарии, тъй като множество нишки могат да четат или записват обект, което може да причини състезателни условия и проблеми със синхронизацията.
Техопедия обяснява неизменния тип
Обекти от неизменен тип могат да бъдат създадени с използването на ключовите думи „const“ и „readonly“. Докато readonly позволява модифициране на поле в конструктора, const не го прави. Числата, низовете и null могат да се използват само като полета const, които са наистина неизменни. Readonly не е наистина неизменна, защото позволява писането само веднъж. Следователно, тя не е константа на време на компилиране като полето const. Наистина неизменните обекти изобщо не променят вътрешното си състояние и затова са по своята същност безопасни за конци.
Класът System.String е неизменен референтен тип, предоставен в библиотеката с рамкови класове .NET. Този клас създава вътрешен нов низ обект за всяко действие на манипулация на низове. Съдържанието на обекти от този тип не се променя, въпреки че синтаксисът го прави сякаш съдържанието може да бъде променено. В допълнение, низът се използва като ключ за хеш таблица за изчисляване на хеш стойности, за да се избегне рискът от повреждане на структурата на хеш данни.
Основният недостатък на неизменните типове е, че те изискват повече ресурси от другите типове обекти.
