Pastaba.
Prieigai prie šio puslapio reikalingas įgaliojimas. Galite bandyti prisijungti arba pakeisti katalogus.
Prieigai prie šio puslapio reikalingas įgaliojimas. Galite bandyti pakeisti katalogus.
Š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.
Static methods
Š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);
Static fields
Statiniai laukai yra kintamieji, kuriuos skelbiate naudodami statinį raktažodį. Konceptualiai jos taikomos klasei, o ne klasės egzemplioriams.
Static constructors
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();
Static method
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.