PRIVATE Variable: Unterschied zwischen den Versionen

Aus Wiki des Deutschsprachige Xbaseentwickler e. V.
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „PRIVATE Variablen werden dynamisch erzeugt und "entsorgt". Eine PRIVATE Variable kann auf zwei verschiedenen Wegen erzeugt werden: - durch die (ausführbare!…“)
 
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
PRIVATE Variablen werden dynamisch erzeugt und "entsorgt".
PRIVATE Variablen werden dynamisch erzeugt und "entsorgt".


Eine PRIVATE Variable kann auf zwei verschiedenen Wegen erzeugt werden:
Eine PRIVATE Variable kann auf drei verschiedenen Wegen erzeugt werden:


- durch die (ausführbare!) Anweisung "PRIVATE cVar"
- durch die (ausführbare!) Anweisung "PRIVATE cVar"
- durch eine Wertzuweisung "cVar := 'Heute'"
- 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


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


Eine PRIVATE Variable ist an ihre Position im Call-Stack gebunden.
Eine PRIVATE Variable ist an ihre Position im Call-Stack gebunden.
Zeile 28: Zeile 41:
cVar wird das erste Mal in folgender Aufruf-Konstellation (= Call-Stack) angesprochen:
cVar wird das erste Mal in folgender Aufruf-Konstellation (= Call-Stack) angesprochen:


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


cVar wird in ProcC erzeugt und ist in dem Moment, in dem ProcC durch die RETURN-Anweisung verlassen wird, nicht mehr "adressierbar".
cVar wird in ProcC erzeugt und ist in dem Moment, in dem ProcC durch die RETURN-Anweisung verlassen wird, nicht mehr "adressierbar".
Zeile 36: Zeile 49:
Wenn später über ProcB ein weiterer Aufruf von ProcC erfolgt, wird eine neue (!) PRIVATE Variable erzeugt:
Wenn später über ProcB ein weiterer Aufruf von ProcC erfolgt, wird eine neue (!) PRIVATE Variable erzeugt:


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


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

Version vom 26. Mai 2013, 21:01 Uhr

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.