Junior
Para que fins são utilizados os campos com o modificador readonly em C#?
sobes.tech IA
Resposta da IA
Um campo com o modificador readonly em C# só pode ser inicializado no momento da declaração do campo ou no construtor da classe. Após a inicialização, o seu valor não pode ser alterado.
Objetivos de uso:
- Garantir imutabilidade: Garante que o valor do campo não será alterado acidentalmente após a criação do objeto. Isto aumenta a fiabilidade do código e facilita a depuração.
- Constantes para cada instância: Ao contrário das constantes estáticas (
const), os camposreadonlypodem ter valores diferentes para diferentes instâncias da classe. - Inicialização no construtor: Permite definir um valor final para o campo com base na lógica do construtor, o que não é possível para campos
const(que devem ser inicializados com um literal ou constante durante a compilação). - Melhoria do desempenho ao trabalhar com estruturas: Para estruturas, os campos
readonlypodem melhorar o desempenho, pois o compilador pode fazer certas otimizações sabendo que o valor não mudará.
Exemplo:
public class MyClass
{
public readonly int ImmutableValue; // Pode ser inicializado aqui ou no construtor
public readonly string Name;
// Construtor para atribuir valores aos campos readonly
public MyClass(int value, string name)
{
ImmutableValue = value;
Name = name;
}
// Este método causará um erro de compilação, pois tenta modificar um campo readonly
// public void TryChangeValue(int newValue)
// {
// ImmutableValue = newValue; // Erro de compilação
// }
}