Nota
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare ad accedere o a cambiare directory.
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare a cambiare directory.
Nota
I gruppi di interesse della community sono ora passati da Yammer a Microsoft Viva Engage. Per entrare a far parte di una community Viva Engage e partecipare alle discussioni più recenti, compila il modulo Richiedi l'accesso alla community Viva Engage per Finance and Operations e scegli la community a cui vuoi unirti.
Questo articolo descrive i membri di classe statici in X++. In generale, i metodi statici sono destinati ai seguenti casi:
- Il metodo non ha motivo di accedere alle variabili membro dichiarate nella classe.
- Il metodo non ha motivo di chiamare metodi di istanza (non statici) della classe.
I membri della classe statica vengono dichiarati utilizzando la parola chiave static . La parola chiave static indica al sistema di creare una sola istanza del metodo, indipendentemente dal numero di istanze della classe presenti. Questa istanza viene utilizzata per tutta la sessione.
Metodi statici
In questa sezione viene descritto uno scenario in cui viene utilizzato un tipo di chiave software per prevenire la pirateria. Ogni istanza di una chiave software può avere un valore univoco. Poiché tutte le chiavi software devono essere conformi alle regole di progettazione delle chiavi software, la logica che verifica la conformità delle chiavi software è la stessa per tutte le chiavi software. Pertanto, il metodo che contiene la logica di convalida della conformità deve essere statico.
Di seguito è riportato un esempio di metodo dichiarato utilizzando la parola chiave static .
public class SoftwareKey
{
static public boolean validateSoftwareKey(str _softwareKeyString)
{
// Your code here.
return false;
}
}
Nell'esempio seguente non è necessario costruire un'istanza della classe SoftwareKey prima di chiamare un metodo statico sulla classe. Quando si desidera chiamare il metodo statico validateSoftwareKey , la sintassi inizia con il nome della classe che contiene il metodo. Una coppia di due punti (::) viene utilizzata per collegare il nome della classe al nome del metodo statico.
boolean yourBool = SoftwareKey::validateSoftwareKey(yourSoftwareKeyString);
Campi statici
I campi statici sono variabili dichiarate utilizzando la parola chiave static . Concettualmente, si applicano alla classe, non alle istanze della classe.
Costruttori statici
È garantito che un costruttore statico venga eseguito prima che vengano effettuate chiamate statiche o di istanza alla classe. L'esecuzione del costruttore statico è relativa alla sessione dell'utente. Il costruttore statico ha la sintassi seguente.
static void TypeNew()
Non si chiama mai in modo esplicito il costruttore statico. Il compilatore genererà il codice per assicurarsi che il costruttore venga chiamato esattamente una volta prima di qualsiasi altro metodo nella classe. Un costruttore statico viene utilizzato per inizializzare i dati statici o eseguire un'azione specifica che deve essere eseguita una sola volta. Non è possibile fornire alcun parametro per il costruttore statico e deve essere contrassegnato come statico.
Nell'esempio di codice riportato di seguito viene illustrato come creare un'istanza singleton utilizzando un costruttore statico.
public class Singleton
{
private static Singleton instance;
private void new()
{
}
static void TypeNew()
{
instance = new Singleton();
}
public static Singleton Instance()
{
return Singleton::instance;
}
}
Il singleton garantisce che venga chiamata una sola istanza della classe. Nell'esempio seguente viene illustrato come creare un'istanza del singleton.
Singleton i = Singleton::Instance();
Metodi statici
I metodi statici, noti anche come metodi di classe, appartengono a una classe e vengono creati utilizzando la parola chiave static. Non è necessario creare un'istanza di un oggetto prima di utilizzare i metodi statici. I metodi statici vengono spesso utilizzati per lavorare con i dati archiviati nelle tabelle. Le variabili membro non possono essere usate in un metodo statico. Per chiamare i metodi statici, utilizzare la sintassi seguente.
ClassName::methodName();
Metodi statici e di istanza
Le parole chiave della funzione di accesso nei metodi non limitano mai le chiamate tra due metodi che si trovano nella stessa classe, indipendentemente dal metodo statico o non statico. In un metodo statico, le chiamate al nuovo metodo del costruttore sono valide anche se il nuovo metodo del costruttore è decorato con il modificatore private . La sintassi per queste chiamate richiede l'utilizzo della parola chiave new . Il codice in un metodo statico deve costruire un oggetto istanza della propria classe prima di poter chiamare qualsiasi metodo di istanza sulla classe.