Resumo : neste tutorial, você aprenderá sobre construtores estáticos e como usá-los para inicializar membros estáticos.
Introdução aos construtores estáticos C#
Ao criar uma instância de uma classe , o compilador C# chama automaticamente o construtor . Esse construtor é chamado de construtor de instância porque cria uma nova instância e inicializa os membros da instância.
Se você usar a static
palavra-chave para declarar um construtor, o construtor se tornará um construtor estático. Geralmente, um construtor estático inicializa campos e propriedades estáticas .
Um construtor estático é diferente de um construtor de instância das seguintes maneiras:
- Um construtor estático usa a palavra-chave static na declaração.
- Uma classe pode ter apenas um construtor estático. E o construtor estático não pode ter nenhum parâmetro.
- Um construtor estático não pode ter um modificador de acesso como public ou private .
Assim como um método estático, um construtor estático não pode acessar membros de instância de uma classe. Portanto, você não pode usar a this
palavra-chave dentro do construtor estático. No entanto, o construtor estático pode acessar campos e propriedades de instância.
Observe que uma classe pode ter construtores de instância e estáticos.
Exemplo de construtor estático C#
O exemplo a seguir define uma classe que contém um construtor estático:
class RandomNumber
{
private static Random random;
static RandomNumber()
{
random = new Random();
}
public int Get() => random.Next();
}
Linguagem de código: C# ( cs )
Como funciona.
- A
RandomNumber
classe contém um campo estático que é uma instância daRandom
classe. - O construtor estático cria uma nova instância da
Random
classe e a atribui aorandom
campo estático. - O
Get()
método de instância retorna um número inteiro aleatório chamando oNext()
método dorandom
objeto.
O programa a seguir usa a RandomNumber
classe para gerar cinco inteiros aleatórios:
// Program.cs
RandomNumber random = new();
for (int i = 0; i < 5; i++)
{
Console.WriteLine(random.Get());
}
Linguagem de código: C# ( cs )
Resumo
- Use construtores estáticos C# para inicializar membros estáticos.