Tipo imutável

Definição - o que significa Tipo imutável?

Um tipo imutável, no contexto do C #, é um tipo de objeto cujos dados não podem ser alterados após sua criação. Um tipo imutável define a propriedade ou estado do objeto como somente leitura porque ele não pode ser modificado depois de ser atribuído durante a inicialização.

Os tipos imutáveis ​​são projetados para gerenciamento de memória eficiente e melhor velocidade, o que os torna adequados para objetos com requisitos de sincronização. A imutabilidade fornece melhor legibilidade do código, fazendo mudanças na visibilidade do estado do programa e isolando as operações que mudam de estado daquelas que não mudam. Tipos imutáveis ​​fornecem maior segurança do que tipos mutáveis.

Um tipo imutável é usado onde os dados devem persistir depois de serem atribuídos uma vez, mas sem qualquer requisito para que os dados sejam alterados no futuro. Como os objetos imutáveis ​​não mudam seu estado, eles são mais úteis em cenários multithread e multiprocess, pois vários threads podem ler ou gravar um objeto, o que pode causar condições de corrida e problemas de sincronização.

Definirtec explica o tipo imutável

Objetos de tipo imutável podem ser criados com o uso das palavras-chave "const" e "readonly". Embora somente leitura permita a modificação de um campo dentro do construtor, const não permite. Números, strings e null só podem ser usados ​​como campos const, que são realmente imutáveis. Readonly não é verdadeiramente imutável porque permite escrever apenas uma vez. Portanto, não é uma constante de tempo de compilação como o campo const. Objetos verdadeiramente imutáveis ​​nunca mudam seu estado interno e são, portanto, inerentemente thread-safe.

A classe System.String é um tipo de referência imutável fornecido na biblioteca de classes do .NET Framework. Esta classe cria um novo objeto string internamente para qualquer ação de manipulação de string. O conteúdo dos objetos desse tipo não muda, embora a sintaxe faça parecer que o conteúdo pode ser alterado. Além disso, string é usada como chave da tabela hash para o cálculo de valores hash para evitar o risco de corromper a estrutura de dados hash.

A principal desvantagem dos tipos imutáveis ​​é que eles requerem mais recursos do que outros tipos de objetos.

Esta definição foi escrita no contexto de C #