C# · Avançado · Inglês · Técnico
static constructor
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