X++ statiniai klasės nariai

Pastaba.

Bendruomenės interesų grupės dabar perkeltos iš "Yammer" į "Microsoft Viva Engage". Norėdami prisijungti prie Viva Engage bendruomenės ir dalyvauti naujausiose diskusijose, užpildykite formą Prašyti prieigos prie "Finance and Operations Viva Engage Community ir pasirinkite bendruomenę, prie kurios norite prisijungti.

Šiame straipsnyje aprašomi statiniai klasės nariai X++. Paprastai tokiais atvejais naudokite statinius metodus:

  • Metodui nereikia pasiekti nario kintamųjų, kurie paskelbti klasėje.
  • Metodui nereikia iškviesti jokių klasės egzemplioriaus (ne statinių) metodų.

Paskelbkite statinius klasės narius naudodami statinį raktažodį. Statinis raktažodis nurodo sistemai sukurti tik vieną metodo egzempliorių, neatsižvelgiant į klasės egzempliorių skaičių. Naudokite šį egzempliorių seanso metu.

Statiniai metodai

Šiame skyriuje aprašomas scenarijus, kai siekiant užkirsti kelią piratavimo atvejams naudojamas programinės įrangos rakto tipas. Kiekvienas programinės įrangos kodo egzempliorius gali turėti savo unikalią reikšmę. Kadangi visi programinės įrangos raktai turi atitikti programinės įrangos rakto dizaino taisykles, visų programinės įrangos raktų atitikties tikrinimo logika yra tokia pati. Todėl metodas, kuriame yra atitikties tikrinimo logika turėtų būti statinis.

Štai metodo, kuris skelbiamas naudojant statinį raktažodį, pavyzdys.

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

Toliau pateiktame pavyzdyje prieš iškviečiant statinį klasės metodą "SoftwareKey " nereikia kurti egzemplioriaus. Kai norite iškviesti statinį metodą validateSoftwareKey , sintaksė prasideda klasės, kurioje yra metodas, pavadinimu. Dvitaškių pora (::) sujungia klasės pavadinimą su statiniu metodo pavadinimu.

boolean yourBool = SoftwareKey::validateSoftwareKey(yourSoftwareKeyString);

Statiniai laukai

Statiniai laukai yra kintamieji, kuriuos skelbiate naudodami statinį raktažodį. Konceptualiai jos taikomos klasei, o ne klasės egzemplioriams.

Statiniai konstruktoriai

Statinis konstruktorius visada paleidžiamas prieš atliekant bet kokius statinius arba egzemplioriaus iškvietimus klasei. Statinio konstruktoriaus vykdymas yra susijęs su vartotojo seansu. Statinis konstruktoriaus naudoja šią sintaksę.

static void TypeNew()

Niekada aiškiai neiškviesite statinio konstruktoriaus. Kompiliatorius sugeneruoja kodą, kad įsitikintų, jog konstruktoriaus iškviečiamas lygiai vieną kartą prieš bet kurį kitą klasės metodą. Naudokite statinį konstruktoriaus inicijuoti statinius duomenis arba atlikti konkretų veiksmą, kuris turi būti atliekamas tik vieną kartą. Negalite pateikti statinio konstruktoriaus parametrų ir turite pažymėti jį kaip statinį.

Toliau pateiktame kodo pavyzdyje parodyta, kaip sukurti vienotono egzempliorių naudojant statinį konstruktoriaus funkciją.

public class Singleton
{
    private static Singleton instance;

    private void new()
    {
    }

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

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

Singleton garantuoja, kad klasė turi tik vieną egzempliorių. Toliau pateiktame pavyzdyje parodyta, kaip inicijuoti viengubą.

Singleton i = Singleton::Instance();

Statinis metodas

Statiniai metodai, kurie dar vadinami klasės metodais, priklauso klasei ir kuriami naudojant statinį raktažodį. Prieš naudojant statinius metodus objekto egzempliorių kurti nereikia. Naudokite statinius metodus dirbdami su duomenimis, saugomais lentelėse. Statiniame metode negalite naudoti narių kintamųjų. Naudokite šią sintaksę statiniams metodams iškviesti.

ClassName::methodName();

Statiniai ir egzempliorių metodai

Prieigos priemonės raktažodžiai metoduose niekada neapribos iškviečia dviejų metodų, kurie priklauso tai pačiai klasei, neatsižvelgiant į tai, kuris metodas yra statinis arba ne statinis. Statiniame metode naujo konstruktoriaus metodo iškvietimai yra tinkami, net jei naujas konstruktoriaus metodas papuoštas privačiu modifikavimo priemone. Šių skambučių sintaksė reikalauja naudoti naują raktažodį. Statinio metodo kodas turi sukurti savo klasės egzemplioriaus objektą, kad jis galėtų iškviesti bet kurį egzemplioriaus metodą klasėje.