ExpertiDict

C# · Essencial · Inglês · Técnico

readonly

/ˈridˌoʊnli/palavra-chave

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.

Veja também

Todos os termos de C#