Consulte "Programação Avançada C#, Quarta Edição"
· Uma razão para escrever um construtor estático é que uma classe possui alguns campos ou propriedades estáticas que precisam ser inicializados de uma fonte externa antes da classe ser usada pela primeira vez.
· Construtores estáticos são executados no máximo uma vez, antes que o código faça referência à classe.
· O construtor estático não possui modificadores de acesso e nunca é chamado por outro código C#, portanto, modificadores de acesso como público e privado não têm sentido.
· O construtor estático não pode aceitar nenhum parâmetro e uma classe só pode ter um construtor estático.
· Construtores estáticos só podem acessar membros estáticos da classe, não membros de instância.
Um exemplo é dado abaixo:
classe pública UserPreferences
{
público estático somente leitura Color BackColor;
Preferências de usuário estáticas()
{
//lê BackColor de nossa fonte;
}
// ...
}
classMainEntryPoint
{
vazio estático Principal()
{
Console.WriteLine(UserPreferences.BackColor.ToString());
}
}
Observe que construtores de instância sem parâmetros podem coexistir com segurança com construtores estáticos em uma classe. Embora a lista de parâmetros seja a mesma, não há contradição, pois o construtor estático é executado quando a classe é carregada, e o construtor da instância é executado quando a instância é criada, portanto não haverá conflito na execução do construtor.
classe MinhaTempClass
{
público estático int num = 100;
MyTempClass estática()
{
num = 101;
}
}
programa de aula
{
vazio estático principal(string[] args)
{
int x = MinhaClasseTemp.num;
Console.WriteLine();
}
}
No programa acima, se o construtor estático não for adicionado, o valor de x será 100. Com o construtor adicionado, o valor de x será 101.