Construtores estáticos C#

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 staticpalavra-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 thispalavra-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 RandomNumberclasse contém um campo estático que é uma instância da Randomclasse.
  • O construtor estático cria uma nova instância da Randomclasse e a atribui ao randomcampo estático.
  • O Get()método de instância retorna um número inteiro aleatório chamando o Next()método do randomobjeto.

O programa a seguir usa a RandomNumberclasse 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.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *