Будинки Розвиток Що таке непорушний тип? - визначення з техопедії

Що таке непорушний тип? - визначення з техопедії

Зміст:

Anonim

Визначення - Що означає тип Immutable?

Незмінний тип у контексті C # - це тип об'єкта, дані якого не можуть бути змінені після його створення. Незмінний тип встановлює властивість або стан об'єкта прочитаним лише тому, що він не може бути змінений після його призначення під час ініціалізації.


Незмінні типи розроблені для ефективного управління пам’яттю та кращої швидкості, що робить їх придатними для об’єктів із вимогами синхронізації. Незмінюваність забезпечує кращу читабельність коду шляхом внесення змін у видимість стану програми та ізоляції операцій, які змінюють стан, від тих, що не роблять. Типи, що змінюються, забезпечують більш високу безпеку, ніж типи, що змінюються.


Незмінний тип застосовується там, коли дані мають зберігатися після призначення одного разу, але без жодних вимог щодо зміни даних у майбутньому. Оскільки незмінні об'єкти не змінюють свого стану, вони більш корисні у багатопотокових та багатопроцесорних сценаріях, оскільки декілька потоків можуть читати чи записувати об’єкт, що може спричинити умови перегонів та проблеми синхронізації.

Техопедія пояснює незмінний тип

Об'єкти незмінного типу можна створити за допомогою ключових слів «const» та «readonly». Хоча readonly дозволяє змінювати поле в конструкторі, const цього не робить. Числа, рядки та null можуть використовуватися лише як поля const, які справді незмінні. Readonly не є справді незмінним, оскільки дозволяє писати лише один раз. Таким чином, це не константа часу компіляції, як поле const. По-справжньому незмінні об'єкти взагалі ніколи не змінюють свій внутрішній стан і тому по суті є безпечними для ниток.


Клас System.String - це незмінний тип посилань, що надається в бібліотеці базових класів .NET. Цей клас створює новий об'єкт рядка внутрішньо для будь-яких дій з маніпулювання рядком. Вміст об'єктів цього типу не змінюється, хоча синтаксис видає, що вміст можна змінити. Крім того, рядок використовується як ключ хеш-таблиці для обчислення значень хешу, щоб уникнути ризику пошкодження структури хеш-даних.


Основний недолік незмінних типів полягає в тому, що їм потрібно більше ресурсів, ніж інші типи об'єктів.

Це визначення було написано в контексті C #
Що таке непорушний тип? - визначення з техопедії