C# · Essencial · Inglês · Técnico
readonly
Modificador de campo que só permite atribuição na declaração ou no construtor. Garante que a referência ou valor guardado não troque depois que o objeto é criado.
Onde usar
Aparece em campos de dependências injetadas, como private readonly ILogger. Marcar campos como readonly deixa clara a intenção e evita reatribuições acidentais.
Em código
class Cache
{
private readonly List<int> _itens = new();
public void Add(int x) => _itens.Add(x);
// void Trocar() => _itens = new(); // erro
}Exemplos
Mark the injected logger as readonly.
Marque o logger injetado como readonly.
The field is readonly, but the list is still mutable.
O campo é readonly, mas a lista continua mutável.
Cuidado
Não torna o objeto imutável: um campo readonly de List ainda permite Add, porque só a referência é protegida.