Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Opmerking
Community-belangengroepen zijn nu verplaatst van Yammer naar Microsoft Viva Engage. Als u wilt deelnemen aan een Viva Engage-community en deel wilt nemen aan de meest recente discussies, vult u het formulier Toegang aanvragen tot Finance and Operations Viva Engage Community in en kiest u de community waaraan u wilt deelnemen.
In dit artikel worden statische klasseleden in X++beschreven. In het algemeen gebruikt u statische methoden voor deze gevallen:
- De methode hoeft geen toegang te krijgen tot lidvariabelen die zijn gedeclareerd in de klasse.
- De methode hoeft geen exemplaarmethoden (niet-statische) van de klasse aan te roepen.
Declareer statische klasseleden met behulp van het statische trefwoord. Met het statische trefwoord wordt het systeem geïnstrueerd om slechts één exemplaar van de methode te maken, ongeacht het aantal exemplaren van de klasse. Gebruik dit ene exemplaar gedurende uw sessie.
Statische methoden
In deze sectie wordt een scenario beschreven waarin een softwaresleuteltype wordt gebruikt om piraterij te voorkomen. Elk exemplaar van een softwaresleutel kan een eigen unieke waarde hebben. Omdat alle softwaresleutels moeten voldoen aan de regels van het ontwerp van softwaresleutels, is de logica waarmee wordt getest op naleving van softwaresleutels hetzelfde voor alle softwaresleutels. Daarom moet de methode die de validatielogica voor conformiteit bevat, statisch zijn.
Hier volgt een voorbeeld van een methode die wordt gedeclareerd met behulp van het statische trefwoord.
public class SoftwareKey
{
static public boolean validateSoftwareKey(str _softwareKeyString)
{
// Your code here.
return false;
}
}
In het volgende voorbeeld hoeft u geen exemplaar van de SoftwareKey-klasse te maken voordat u een statische methode aanroept voor de klasse. Wanneer u de statische validateSoftwareKey-methode wilt aanroepen, begint de syntaxis met de naam van de klasse die de methode bevat. Een paar dubbele punten (::) verbindt de klassenaam met de naam van de statische methode.
boolean yourBool = SoftwareKey::validateSoftwareKey(yourSoftwareKeyString);
Statische velden
Statische velden zijn variabelen die u declareert met behulp van het statische trefwoord. Conceptueel zijn ze van toepassing op de klasse, niet op exemplaren van de klasse.
Statische constructors
Een statische constructor wordt altijd uitgevoerd voordat statische aanroepen of exemplaren naar de klasse worden uitgevoerd. De uitvoering van de statische constructor is relatief ten opzichte van de sessie van de gebruiker. De statische constructor gebruikt de volgende syntaxis.
static void TypeNew()
U roept de statische constructor nooit expliciet aan. De compiler genereert code om ervoor te zorgen dat de constructor precies één keer wordt aangeroepen vóór een andere methode in de klasse. Gebruik een statische constructor om statische gegevens te initialiseren of een bepaalde actie uit te voeren die slechts één keer moet worden uitgevoerd. U kunt geen parameters opgeven voor de statische constructor en u moet deze markeren als statisch.
In het volgende codevoorbeeld ziet u hoe u een singleton-exemplaar maakt met behulp van een statische constructor.
public class Singleton
{
private static Singleton instance;
private void new()
{
}
static void TypeNew()
{
instance = new Singleton();
}
public static Singleton Instance()
{
return Singleton::instance;
}
}
De singleton garandeert dat de klasse slechts één exemplaar heeft. In het volgende voorbeeld ziet u hoe u een instantie van de singleton maakt.
Singleton i = Singleton::Instance();
Statische methode
Statische methoden, die ook wel klassemethoden worden genoemd, behoren tot een klasse en worden gemaakt met behulp van het statische trefwoord. U hoeft geen instantie van een object te maken voordat u statische methoden gebruikt. Gebruik statische methoden om te werken met gegevens die zijn opgeslagen in tabellen. U kunt geen lidvariabelen gebruiken in een statische methode. Gebruik de volgende syntaxis om statische methoden aan te roepen.
ClassName::methodName();
Statische methoden en exemplaren
De trefwoorden van accessor op methoden beperken nooit aanroepen tussen twee methoden die zich in dezelfde klasse bevinden, ongeacht welke methode statisch of niet-statisch is. In een statische methode zijn aanroepen naar de nieuwe constructormethode geldig, zelfs als de nieuwe constructormethode is ingericht met de persoonlijke modifier. De syntaxis voor deze aanroepen vereist dat u het nieuwe trefwoord gebruikt. De code in een statische methode moet een exemplaarobject van een eigen klasse maken voordat deze instantiemethoden in de klasse kan aanroepen.