PRIVATE Variable

Aus Wiki des Deutschsprachige Xbaseentwickler e. V.
Zur Navigation springen Zur Suche springen

PRIVATE Variablen werden dynamisch erzeugt und "entsorgt".

Eine PRIVATE Variable kann auf drei verschiedenen Wegen erzeugt werden:

- durch die (ausführbare!) Anweisung "PRIVATE cVar" - durch eine Wertzuweisung "cVar := 'Heute'" - durch die Anweisung PARAMETER in einer Funktion (die übergebenen Werte werden in die vorgegebenen Variablen übernommen)

In den beiden ersten Fällen wird eine Variable mit dem Namen cVar erzeugt.

FUNCTION TueIrgendEtwas
   LOCAL nI
   PRIVATE dHeute
   PARAMETER nEins, nZwei, lVier

Innerhalb dieser Funktion sind damit vier PRIVATE Variable definiert:

- dHeute
- nEins
- nZwei
- lVier


Eine PRIVATE Variable ist an ihre Position im Call-Stack gebunden.

FUNCTION Main()
  ProcA()
  ProcB()
RETURN(.T.)
FUNCTION ProcA()
  ProcC()
  ...
RETURN(.T.)
FUNCTION ProcB()
  ProcC()
  ...
RETURN(.T.)
FUNCTION ProcC()
  cVar := "Hugo"
RETURN(.T.)

cVar wird das erste Mal in folgender Aufruf-Konstellation (= Call-Stack) angesprochen:

Main
+---> ProcA
:       +---> ProcC

cVar wird in ProcC erzeugt und ist in dem Moment, in dem ProcC durch die RETURN-Anweisung verlassen wird, nicht mehr "adressierbar".

Wenn später über ProcB ein weiterer Aufruf von ProcC erfolgt, wird eine neue (!) PRIVATE Variable erzeugt:

Main
+---> ProcB
:       +---> ProcC

Auch für diese Variable endet ihre Lebenszeit, wenn ProcC mit RETURN verlassen wird.