Membres de la classe statique X++

Remarque

Les groupes d’intérêt communautaire sont désormais passés de Yammer à Microsoft Viva Engage. Pour rejoindre une communauté Viva Engage et participer aux dernières discussions, remplissez le formulaire Demande d’accès à la Finance et Opérations Viva Engage Communauté et choisissez la communauté que vous souhaitez rejoindre.

Cet article décrit les membres de classe statiques dans X++. En général, utilisez des méthodes statiques pour ces cas :

  • La méthode n’a pas besoin d’accéder aux variables membres déclarées dans la classe.
  • La méthode n’a pas besoin d’appeler des méthodes d’instance (non statiques) de la classe.

Déclarez les membres statiques de la classe en utilisant le mot-clé statique . Le mot-clé statique ordonne au système de ne créer qu’une seule instance de la méthode, quel que soit le nombre d’instances de la classe. Utilisez cet exemple unique tout au long de votre séance.

Méthodes statiques

Cette section décrit un scénario dans lequel un type de clé logicielle est utilisé pour empêcher le piratage. Chaque instance d’une clé logicielle peut avoir sa propre valeur unique. Étant donné que toutes les clés logicielles doivent être conformes aux règles de conception des clés logicielles, la logique qui teste la conformité des clés logicielles est la même pour toutes les clés logicielles. Par conséquent, la méthode qui contient la logique de validation de la conformité doit être statique.

Voici un exemple de méthode qui est déclarée en utilisant le mot-clé statique .

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

Dans l’exemple suivant, vous n’avez pas besoin de construire une instance de la classe SoftwareKey avant d’appeler une méthode statique sur la classe. Lorsque vous souhaitez appeler la méthode statique validateSoftwareKey , la syntaxe commence par le nom de la classe qui contient la méthode. Une paire de deux-points ( ::) relie le nom de la classe au nom de la méthode statique.

boolean yourBool = SoftwareKey::validateSoftwareKey(yourSoftwareKeyString);

Champs statiques

Les champs statiques sont des variables que l’on déclare en utilisant le mot-clé statique . Conceptuellement, ils s’appliquent à la classe, pas aux instances de la classe.

Constructeurs statiques

Un constructeur statique s’exécute toujours avant que des appels statiques ou d’instance ne soient effectués à la classe. L’exécution du constructeur statique est relative à la session de l’utilisateur. Le constructeur statique utilise la syntaxe suivante.

static void TypeNew()

Vous n’appelez jamais explicitement le constructeur statique. Le compilateur génère du code pour s’assurer que le constructeur est appelé exactement une fois avant toute autre méthode de la classe. Utilisez un constructeur statique pour initialiser toute donnée statique ou effectuer une action particulière qui ne doit être effectuée qu’une seule fois. Vous ne pouvez pas fournir de paramètres pour le constructeur statique, et vous devez le marquer comme statique.

L’exemple de code suivant montre comment créer une instance singleton à l’aide d’un constructeur statique.

public class Singleton
{
    private static Singleton instance;

    private void new()
    {
    }

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

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

Le singleton garantit que la classe n’a qu’une seule instance. L’exemple suivant montre comment instancier le singleton.

Singleton i = Singleton::Instance();

Méthode statique

Les méthodes statiques, également appelées méthodes de classe, appartiennent à une classe et sont créées à l’aide du mot-clé static. Vous n’avez pas besoin d’instancier un objet avant d’utiliser des méthodes statiques. Utilisez des méthodes statiques pour travailler avec les données stockées dans des tableaux. Vous ne pouvez pas utiliser les variables membres de manière statique. Utilisez la syntaxe suivante pour appeler des méthodes statiques.

ClassName::methodName();

Méthodes statiques et d’instance

Les mots-clés d’accès sur les méthodes ne restreignent jamais les appels entre deux méthodes qui se trouvent dans la même classe, qu’elle soit statique ou non statique. Dans une méthode statique, les appels à la méthode new constructor sont valides même si la nouvelle méthode constructor est décorée avec le modificateur private . La syntaxe de ces appels exige que vous utilisiez le nouveau mot-clé. Le code d’une méthode statique doit construire un objet d’instance de sa propre classe avant de pouvoir appeler des méthodes d’instance sur la classe.