Table of Contents

Symbolische Konstanten

Informationen

  • Function Area: Kernel | Klassenformeln
  • Version: 17.0.0.6370
  • Published Date: Dienstag, 15. Juli 2014
  • Developer: Fischer
  • Subject: Symbolische Konstanten
  • Needs DB Modification: False

Beschreibung

Symbolische Konstanten werden in Klassenformeln definiert und verwendet.

Sie geben einem konstanten Wert einen Namen. Ihre Verwendung erhöht die Lesbarkeit des Programmcodes, anstelle eines direkten Werts wird ein sprechender Name angegeben.

An allen Stellen im Programmcode, an denen ein Wert erwartet wird, kann auch eine Symbolische Konstanten angegeben werten.

Eine symbolische Konstante ist global sichtbar, d.h. sie kann in allen Klassenformel verwendet werden und nicht nur in der Klassenformel, in der sie definiert wurde.

Die Verwendung von Symbolischen Konstanten hat keinen Einfluß auf das Laufzeitverhalten der Klassenformel (d.h. die Klassenformel wird nicht langsamer), Symbolischen Konstanten werden ausschließlich zur Compilezeit ausgewertet.

Es gibt

  • eingebaute Symbolische Konstanten des Kerns (System-Konstanten) und
  • in Klassenformeln definierte Symbolische Konstanten.

Syntax der Definition: define const = , = , ... ;

Der Name beginnt mit einem Hash-Zeichen (#) und eine Folge von Namensteilen, die durch Punkt getrennt sind. Für einen Namensteil sind nur die Zeichen 'A'-'Z','a'-'z','0'-'9' und '_' (Buchstaben, Ziffern und Unterstrich) zulässig. Ausnahme: Das erste Zeichen eines Namenteils darf keine Ziffer sein.

Beispiel: #Project.Info.Customer.Name

Als Wert wird ein konstanter Ausdruck erwartet. Dies kann

  • ein direkter Wert (z.B. 5)
  • eine Formel (z.B. 3 + 9)
  • eine zur Compilezeit aufrufbare Funktion (z.B. Rgb( 100, 100, 50))
  • eine andere Symbolische Konstante (z.B. #Project.File.Warning.MaxSize)
  • und Kombinationen davon sein.

Achtung - hier existiert eine Ausnahme zur globalen Sichtbarkeit: Wird bei der Definition einer Symbolischen Konstante eine andere Symbolische Konstante verwendet, muss deren Definition zuvor in derselben Klassenformel erfolgt sein.

Symbolische Konstanten des Kerns beginnen immer mit "#System." um Namenskollisionen mit definierten Konstanten zu vermeiden (z.B. #System.Math.pi). Definierte Konstanten dürfen nicht mit "#System." beginnen (wird vom Compiler überwacht, eine Fehlermeldung wird ausgegeben).

Im Code-Editor können vorhandene Symbolische Konstanten auch über einen Dialog eingefügt werden (Einfügen/Symbolische Konstante).