Share via


demonstrativo estático

Declara um inicializador de classe nova dentro de uma declaração de classe.

static identifier {
   [body]
}

Argumentos

  • identifier
    Obrigatório.O nome da classe que contém o bloco de inicializador.

  • body
    Opcional.O código que compreende o inicializador de bloco.

Comentários

A estático inicializador de é usado para inicializar um classe objeto (não objeto instâncias) antes de sua primeira utilização.Essa inicialização ocorre somente uma vez e pode ser usado para inicializar campos na classe que têm o estáticomodificador de .

A classe pode conter vários estático inicializador blocos intercaladas com estático declarações de campo.Ao inicializar o classe, all the estático blocos de e estático inicializadores de campo são executados na ordem em que aparecem no classe corpo.Essa inicialização é executada antes da primeira referência a um estático campo.

Não confunda o estático modificador com o estático demonstrativo.The estático modificador denota um membro que pertence à classe, não qualquer instância da classe.

Exemplo

O exemplo a seguir mostra um simples classe declaração na qual o estáticoinicializador de é usado para executar um cálculo só precisa ser concluído uma vez.Neste exemplo, uma tabela de fatoriais é calculada de uma vez.Quando forem necessários fatoriais eles são lidos da tabela.Essa abordagem é mais rápida do que o cálculo recursivamente fatoriais se fatoriais grandes são necessárias muitas vezes no programa.

The estáticomodificador de é usado para o método fatorial.

class CMath {
   // Dimension an array to store factorial values.
   // The static modifier is used in the next two lines.
   static const maxFactorial : int = 5;
   static const factorialArray : int[] = new int[maxFactorial];

   static CMath {
      // Initialize the array of factorial values.
      // Use factorialArray[x] = (x+1)!
      factorialArray[0] = 1;
      for(var i : int = 1; i< maxFactorial; i++) {
         factorialArray[i] = factorialArray[i-1] * (i+1);
      }
      // Show when the initializer is run.
      print("Initialized factorialArray.");
   }

   static function factorial(x : int) : int {
      // Should have code to check that x is in range.
      return factorialArray[x-1];
   }
};

print("Table of factorials:");

for(var x : int = 1; x <= CMath.maxFactorial; x++) {
   print( x + "! = " + CMath.factorial(x) );
}

A saída desse código é:

Table of factorials:
Initialized factorialArray.
1! = 1
2! = 2
3! = 6
4! = 24
5! = 120

Requisitos

Versão .NET

Consulte também

Referência

demonstrativo de classe

Modificador estático