Статични членове на класа на X++

Бележка

Групите с интереси на общността сега са се преместили от Yammer в Microsoft Viva Engage. За да се присъедините към Viva Engage общност и да участвате в последните обсъждания, попълнете формуляра Заявете достъп до финанси и операции Viva Engage общността и изберете общността, към която искате да се присъедините.

Тази статия описва статичните членове на класа в X++. По принцип използвайте статични методи за тези случаи:

  • Методът не се нуждае от достъп до променливите на членовете, които са декларирани в класа.
  • Методът не трябва да извиква никакви методи за екземпляр (нестатични) на класа.

Деклариране на статични членове на класа с помощта на статична ключова дума. Статичната ключова дума инструктира системата да създаде само един екземпляр на метода, независимо от броя на екземплярите на класа. Използвайте този екземпляр по време на сесията.

Статични методи

Този раздел описва сценарий, при който се използва софтуерен тип ключ за предотвратяване на пиратството. Всеки екземпляр на софтуерен ключ може да има своя уникална стойност. Тъй като всички софтуерни ключове трябва да отговарят на правилата за проектиране на софтуерни ключове, логиката, която проверява за съответствие на софтуерните ключове, е една и съща за всички софтуерни ключове. Следователно методът, който съдържа логиката за проверка на съответствието, трябва да бъде статичен.

Ето пример за метод, който е деклариран с помощта на статична ключова дума.

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

В следващия пример не е необходимо да изграждате екземпляр на класа SoftwareKey , преди да се обадите на статичен метод на класа. Когато искате да се обадите на метода static validateSoftwareKey , синтаксисът започва с името на класа, който съдържа метода. Двойка двоеточия (::) свързва името на класа със статичното име на метода.

boolean yourBool = SoftwareKey::validateSoftwareKey(yourSoftwareKeyString);

Статични полета

Статичните полета са променливи, които декларирате с помощта на статична ключова дума. Концептуално те се отнасят за класа, а не за екземплярите на класа.

Статични конструктори

Статичният конструктор винаги се изпълнява, преди да се направят повиквания към класа. Изпълнението на статичния конструктор е спрямо сесията на потребителя. Статичният конструктор използва следния синтаксис.

static void TypeNew()

Никога не се обръщате изрично към статичния конструктор. Компилатор генерира код, за да се уверите, че конструктор се нарича точно един път преди всеки друг метод на класа. Използвайте статичен конструктор, за да инициализирате всички статични данни или да извършите определено действие, което трябва да бъде изпълнено само веднъж. Не можете да предоставите параметри за статичния конструктор и трябва да го маркирате като статичен.

Следващият пример с код показва как да създадете екземпляр на единичен код с помощта на статичен конструктор.

public class Singleton
{
    private static Singleton instance;

    private void new()
    {
    }

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

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

Singleton гарантира, че класът има само един екземпляр. Примерът по-долу показва как да се създаде екземпляр на singleton.

Singleton i = Singleton::Instance();

Статичен метод

Статичните методи, които са известни още като методи на клас, принадлежат към клас и се създават с помощта на ключовата дума статична. Не е необходимо да създавате екземпляри на обект, преди да използвате статични методи. Използвайте статични методи, за да работите с данни, които са съхранени в таблици. Не можете да използвате променливи на членове в статичен метод. Използвайте следния синтаксис, за да извикате статични методи.

ClassName::methodName();

Статични методи и методи за екземпляри

Ключовите думи за достъп в методите никога не ограничават повикванията между два метода, които са в един и същ клас, независимо кой метод е статичен или нестатичен. При статичен метод повикванията към новия метод на конструктора са валидни дори ако новият метод на конструктора е украсен с частен модификатор. Синтаксисът за тези повиквания изисква да използвате новата ключова дума. Кодът в статичен метод трябва да конструира обект на екземпляр от свой собствен клас, преди да може да извика методи за екземпляр в класа.