Sdílet prostřednictvím


Statické členy třídy X++

Poznámka:

Skupiny zájmu komunity se teď přesunuly z Yammeru na Microsoft Viva Engage. Pokud se chcete připojit k komunitě Viva Engage a účastnit se nejnovějších diskuzí, vyplňte formulář Žádost o přístup k aplikaci Finance and Operations Viva Engage Community a zvolte komunitu, ke které se chcete připojit.

Tento článek popisuje statické členy třídy v X++. Obecně platí, že statické metody jsou určené pro tyto případy:

  • Metoda nemá žádný důvod pro přístup k členským proměnným, které jsou deklarovány ve třídě.
  • Metoda nemá důvod volat žádné instance (nestatické) metody třídy.

Deklarujete statické členy třídy pomocí statického klíčového slova. Statické klíčové slovo dává systému pokyn, aby vytvořil pouze jednu instanci metody bez ohledu na počet instancí třídy, které existují. Tato jedna instance se používá v celé relaci.

Statické metody

Tato část popisuje scénář, ve kterém se používá typ softwarového klíče, který pomáhá zabránit pirátství. Každá instance softwarového klíče může mít svou vlastní jedinečnou hodnotu. Vzhledem k tomu, že všechny softwarové klíče musí odpovídat pravidlům návrhu softwarového klíče, logika, která testuje shodu klíče softwaru, je stejná pro všechny softwarové klíče. Proto by metoda, která obsahuje logiku ověření shody, měla být statická.

Tady je příklad metody deklarované pomocí statického klíčového slova.

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

V následujícím příkladu nemusíte před voláním statické metody třídy sestavit instanci Třídy SoftwareKey . Pokud chcete volat static validateSoftwareKey metoda, syntaxe začíná názvem třídy, která obsahuje metodu. Dvojice dvojtečka (::) slouží k připojení názvu třídy k názvu statické metody.

boolean yourBool = SoftwareKey::validateSoftwareKey(yourSoftwareKeyString);

Statická pole

Statická pole jsou proměnné deklarované pomocí statického klíčového slova. Koncepčně platí pro třídu, ne pro instance třídy.

Statické konstruktory

Statický konstruktor je zaručeno spuštění před provedením jakýchkoli volání statické instance nebo instance do třídy. Spuštění statického konstruktoru je relativní vzhledem k relaci uživatele. Statický konstruktor má následující syntaxi.

static void TypeNew()

Nikdy explicitně nevoláte statický konstruktor. Kompilátor vygeneruje kód, který zajistí, že konstruktor je volána přesně jednou před jakoukoli jinou metodou třídy. Statický konstruktor se používá k inicializaci statických dat nebo k provedení konkrétní akce, která se musí provést pouze jednou. Pro statický konstruktor nelze zadat žádné parametry a musí být označeny jako statické.

Následující příklad kódu ukazuje, jak vytvořit instanci singleton pomocí statického konstruktoru.

public class Singleton
{
    private static Singleton instance;

    private void new()
    {
    }

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

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

Singleton zaručuje, že bude volána pouze jedna instance třídy. Následující příklad ukazuje, jak vytvořit instanci singletonu.

Singleton i = Singleton::Instance();

Statické metody

Statické metody, které jsou také označovány jako metody třídy, patří do třídy a jsou vytvořeny pomocí klíčového slova statické. Před použitím statických metod nemusíte vytvořit instanci objektu. Statické metody se často používají k práci s daty uloženými v tabulkách. Členské proměnné nelze použít ve statické metodě. K volání statických metod použijte následující syntaxi.

ClassName::methodName();

Statické metody a metody instancí

Klíčová slova přístupového objektu u metod nikdy neomezují volání mezi dvěma metodami, které jsou ve stejné třídě bez ohledu na to, která metoda je statická nebo ne statická. Volání nové metody konstruktoru jsou ve statické metodě platné i v případě, že je nová metoda konstruktoru zdobena privátním modifikátorem. Syntaxe těchto volání vyžaduje použití nového klíčového slova. Kód ve statické metodě musí vytvořit objekt instance své vlastní třídy, aby mohl volat jakékoli metody instance třídy.