Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Hinweis
Community-Interessensgruppen sind jetzt von Yammer zu Microsoft Viva Engage gewechselt. Um an einer Viva Engage-Community teilzunehmen und an den neuesten Diskussionen teilzunehmen, füllen Sie das Formular "Anfordern des Zugriffs auf Finance and Operations Viva Engage Community" aus , und wählen Sie die Community aus, der Sie beitreten möchten.
In diesem Artikel werden statische Klassenmmber in X++ beschrieben. Verwenden Sie im Allgemeinen statische Methoden für diese Fälle:
- Die Methode muss nicht auf Membervariablen zugreifen, die in der Klasse deklariert sind.
- Die Methode muss keine Instanzmethoden (nicht statisch) der Klasse aufrufen.
Deklarieren Sie statische Klassenmmber mithilfe des statischen Schlüsselworts. Das statische Schlüsselwort weist das System an, unabhängig von der Anzahl der Instanzen der Klasse nur eine Instanz der Methode zu erstellen. Verwenden Sie diese eine Instanz während der gesamten Sitzung.
Statische Methoden
In diesem Abschnitt wird ein Szenario beschrieben, in dem ein Softwareschlüsseltyp verwendet wird, um Piraterie zu verhindern. Jede Instanz eines Softwareschlüssels kann einen eigenen eindeutigen Wert aufweisen. Da alle Softwareschlüssel den Regeln des Softwareschlüsseldesigns entsprechen müssen, ist die Logik, die auf die Einhaltung von Softwareschlüsseln testet, für alle Softwareschlüssel identisch. Daher sollte die Methode, die die Konformitätsüberprüfungslogik enthält, statisch sein.
Hier ist ein Beispiel für eine Methode, die mithilfe des statischen Schlüsselworts deklariert wird.
public class SoftwareKey
{
static public boolean validateSoftwareKey(str _softwareKeyString)
{
// Your code here.
return false;
}
}
Im folgenden Beispiel müssen Sie keine Instanz der SoftwareKey-Klasse erstellen, bevor Sie eine statische Methode für die Klasse aufrufen. Wenn Sie die statische validateSoftwareKey-Methode aufrufen möchten, beginnt die Syntax mit dem Namen der Klasse, die die Methode enthält. Ein Doppelpunktpaar (::) verbindet den Klassennamen mit dem Namen der statischen Methode.
boolean yourBool = SoftwareKey::validateSoftwareKey(yourSoftwareKeyString);
Statische Felder
Statische Felder sind Variablen, die Sie mithilfe des statischen Schlüsselworts deklarieren. Konzeptionell gelten sie für die Klasse, nicht für Instanzen der Klasse.
Statische Konstruktoren
Ein statischer Konstruktor wird immer ausgeführt, bevor statische Aufrufe oder Instanzen an der Klasse ausgeführt werden. Die Ausführung des statischen Konstruktors ist relativ zur Sitzung des Benutzers. Der statische Konstruktor verwendet die folgende Syntax.
static void TypeNew()
Sie rufen nie explizit den statischen Konstruktor auf. Der Compiler generiert Code, um sicherzustellen, dass der Konstruktor genau einmal aufgerufen wird, bevor eine andere Methode für die Klasse ausgeführt wird. Verwenden Sie einen statischen Konstruktor, um statische Daten zu initialisieren oder eine bestimmte Aktion auszuführen, die nur einmal ausgeführt werden muss. Sie können keine Parameter für den statischen Konstruktor angeben, und Sie müssen ihn als statisch markieren.
Das folgende Codebeispiel zeigt, wie Sie eine Singleton-Instanz mithilfe eines statischen Konstruktors erstellen.
public class Singleton
{
private static Singleton instance;
private void new()
{
}
static void TypeNew()
{
instance = new Singleton();
}
public static Singleton Instance()
{
return Singleton::instance;
}
}
Der Singleton garantiert, dass die Klasse nur eine Instanz aufweist. Das folgende Beispiel zeigt, wie sie das Singleton instanziieren.
Singleton i = Singleton::Instance();
Statische Methode
Statische Methoden, die auch als Klassenmethoden bezeichnet werden, gehören zu einer Klasse und werden mithilfe der Schlüsselwort statisch erstellt. Sie müssen ein Objekt nicht instanziieren, bevor Sie statische Methoden verwenden. Verwenden Sie statische Methoden, um mit Daten zu arbeiten, die in Tabellen gespeichert sind. Sie können Membervariablen nicht in einer statischen Methode verwenden. Verwenden Sie die folgende Syntax, um statische Methoden aufzurufen.
ClassName::methodName();
Statische Methoden und Instanzmethoden
Die Accessorstichwörter für Methoden beschränken niemals Aufrufe zwischen zwei Methoden, die sich in derselben Klasse befinden, unabhängig davon, welche Methode statisch oder nicht statisch ist. In einer statischen Methode sind Aufrufe der neuen Konstruktormethode gültig, auch wenn die neue Konstruktormethode mit dem privaten Modifizierer versehen ist. Die Syntax für diese Aufrufe erfordert, dass Sie das neue Schlüsselwort verwenden. Der Code in einer statischen Methode muss ein Instanzobjekt einer eigenen Klasse erstellen, bevor er Instanzmethoden für die Klasse aufrufen kann.