Sobes.tech
Junior — Middle

Qual é a diferença entre as palavras-chave const e readonly no contexto da programação, e em que casos é mais preferível usá-las?

sobes.tech IA

Resposta da IA

Em C#, a palavra-chave const é usada para declarar constantes cujo valores são conhecidos em tempo de compilação e não podem ser alterados durante a execução. Esses valores devem ser primitivos ou literais e devem ser inicializados imediatamente.

readonly aplica-se a campos cujo valor só pode ser definido na declaração ou no construtor da classe. Após a inicialização, o valor não pode ser alterado, mas pode ser calculado em tempo de execução.

Quando usar:

  • const — para valores imutáveis conhecidos em tempo de compilação (por exemplo, números, strings).
  • readonly — quando o valor só é conhecido em tempo de execução, por exemplo, depende dos parâmetros do construtor.

Exemplo:

public class Example {
    public const double Pi = 3.1415; // conhecido em tempo de compilação
    public readonly DateTime CreatedAt;

    public Example() {
        CreatedAt = DateTime.Now; // inicialização em tempo de execução
    }
}