Compartilhar via


Membros da classe estática X++

Observação

Grupos de interesse da comunidade mudaram do Yammer para o Microsoft Viva Engage. Para ingressar em uma comunidade do Viva Engage e participar das discussões mais recentes, preencha o formulário Solicitar acesso às Finanças e Operações viva engage community e escolha a comunidade que você deseja ingressar.

Este artigo descreve os membros da classe estática no X++. Em geral, os métodos estáticos são destinados a esses casos:

  • O método não tem motivo para acessar as variáveis de membro declaradas na classe.
  • O método não tem motivos para chamar métodos de instância (não estáticos) da classe.

Você declara membros de classe estáticos usando a palavra-chave estática . A palavra-chave estática instrui o sistema a criar apenas uma instância do método, independentemente do número de instâncias da classe que existem. Esta instância é usada em toda a sessão.

Métodos estáticos

Esta seção descreve um cenário em que um tipo de chave de software é usado para ajudar a prevenir a pirataria. Cada instância de uma chave de software pode ter seu próprio valor exclusivo. Como todas as chaves de software devem estar em conformidade com as regras de design de chave de software, a lógica que testa a conformidade da chave de software é a mesma para todas as chaves de software. Portanto, o método que contém a lógica de validação de conformidade deve ser estático.

Aqui está um exemplo de um método que é declarado usando a palavra-chave estática .

public class SoftwareKey
{
    static public boolean validateSoftwareKey(str _softwareKeyString)
    {
        // Your code here.
        return false;
    }
}

No exemplo a seguir, você não precisa construir uma instância da classe SoftwareKey antes de chamar um método estático na classe. Quando você deseja chamar o método validateSoftwareKey estático, a sintaxe começa com o nome da classe que contém o método. Um par de dois-pontos (::) é usado para conectar o nome da classe ao nome do método estático.

boolean yourBool = SoftwareKey::validateSoftwareKey(yourSoftwareKeyString);

Campos estáticos

Campos estáticos são variáveis declaradas usando a palavra-chave estática . Conceitualmente, elas se aplicam à classe, não a instâncias da classe.

Construtores estáticos

Um construtor estático é garantido para ser executado antes que qualquer chamada estática ou de instância seja feita para a classe. A execução do construtor estático é relativa à sessão do usuário. O construtor estático tem a sintaxe a seguir.

static void TypeNew()

Você nunca chama explicitamente o construtor estático. O compilador gerará código para garantir que o construtor seja chamado exatamente uma vez antes de qualquer outro método na classe. Um construtor estático é usado para inicializar dados estáticos ou executar uma ação específica que deve ser executada apenas uma vez. Nenhum parâmetro pode ser fornecido para o construtor estático e deve ser marcado como estático.

O exemplo de código a seguir mostra como criar uma instância singleton usando um construtor estático.

public class Singleton
{
    private static Singleton instance;

    private void new()
    {
    }

    static void TypeNew()
    {
        instance = new Singleton();
    }

    public static Singleton Instance()
    {
        return Singleton::instance;
    }
}

O singleton garante que apenas uma instância da classe será chamada. O exemplo a seguir mostra como instanciar o singleton.

Singleton i = Singleton::Instance();

Métodos estáticos

Os métodos estáticos, que também são conhecidos como métodos de classe, pertencem a uma classe e são criados usando a palavra-chave estática. Você não precisa criar uma instância de um objeto antes de usar métodos estáticos. Métodos estáticos geralmente são usados para trabalhar com dados armazenados em tabelas. Variáveis de membro não podem ser usadas em um método estático. Use a sintaxe a seguir para chamar métodos estáticos.

ClassName::methodName();

Métodos estáticos e de instância

As palavras-chave do acessador em métodos nunca restringem chamadas entre dois métodos que estão na mesma classe, independentemente de qual método seja estático ou não estático. Em um método estático, as chamadas para o novo método construtor são válidas mesmo se o novo método de construtor for decorado com o modificador privado . A sintaxe dessas chamadas requer que a nova palavra-chave seja usada. O código em um método estático deve construir um objeto de instância de sua própria classe antes de poder chamar qualquer método de instância na classe.