ExpertiDict

C# · Avançado · Inglês · Técnico

static constructor

/ˈstætɪk kənˈstrʌktɚ/substantivo

Construtor sem parâmetros que inicializa o estado estático de um tipo. O CLR o executa uma só vez, de forma thread-safe, antes do primeiro uso do tipo.

Onde usar

Aparece em tabelas estáticas e singletons cuja criação precisa de lógica. Uma exceção no construtor estático vira TypeInitializationException, e o tipo fica inutilizável no resto da vida do processo.

Em código

class Config
{
  public static readonly string[] Ambientes;
  static Config()
  {
    Ambientes = ["dev", "prod"];
  }
}

Exemplos

The static constructor throws, so the type is unusable.

O construtor estático lança exceção, então o tipo fica inutilizável.

A static constructor runs once per type.

Um construtor estático roda uma vez por tipo.

Cuidado

Não presuma o momento exato da execução sem declarar o construtor estático: campos estáticos com inicializador apenas podem ser inicializados antes (beforefieldinit).

Sinônimos

type initializer

Veja também

Todos os termos de C#