Schlüsselwort "this"

Das Schlüsselwort 'this' ist ein vordefiniertes Qualifikationsmerkmal, das auf den Container (den Hauptlogikabschnitt) verweist, in dem sich die aktuelle Funktion befindet. Betrachten Sie die folgende Situation: Ein Programm deklariert eine globale Variable namens 'runningTotal' und ruft anschließend über die Funktion 'main()' die Funktion 'getCustomer()' auf. Diese Funktion deklariert ihre eigene lokale Variable namens 'runningTotal'. Dir ursprüngliche Variable 'runningTotal' befindet sich theoretisch im Gültigkeitsbereich der Funktion, aber der nicht qualifizierte Name verweist nun auf die lokale Version. Um auf die ursprüngliche Variable zuzugreifen, verwenden Sie das Qualifikationsmerkmal 'this':
runningTotal = this.runningTotal + myCustomer.customerBalance;
In diesem Fall wird die lokale Variable runningTotal mit dem Wert der Variablen runningTotal aus main() initialisiert. Anschließend wird der Saldo des aktuellen Kunden zur lokalen Summe addiert.

In seltenen Fällen können Sie das Schlüsselwort 'this' verwenden, um das Verhalten eines SET-Werteblocks in einer Zuordnungsanweisung zu überschreiben. In diesem Fall legt 'this' als Gültigkeitsbereich die Deklaration fest, in der sich der SET-Werteblock befindet. Details hierzu finden Sie unter SET-Werteblöcke.

Beispiel

Betrachten Sie folgendes Szenario: Sie haben ein Programm (myProgramA), das eine Funktion aufruft (main()), die wiederum 'myFunctionB()' aufruft. Nehmen Sie an, dass jeder dieser Abschnitte eine Variable namens 'varX' deklariert:
program myProgramA type BasicProgram
varX STRING = "program";

   function main()
      varX STRING = "main";
      myFunctionB();
   end

   function myFunctionB()
      varX STRING = "Function B";
      writeStdErr(this.varX);
   end
end

Die Variable this.varX zeigt den Wert "program" auf der Konsole an, da es sich bei dem Programm um den Hauptlogikabschnitt handelt, in dem sich 'myFunctionB()' befindet .


Feedback