Programmierung

Gegenüberstellung der Datentypen int und handle

In diesem Artikel möchte ich die Gemeinsamkeiten und Unterschiede der Datentypen int und handle beschreiben.

Bis zur CONZEPT 16-Version 5.2 existierte nur der Datentyp int um Deskriptoren verwalten zu können. Anhand des Datentyps war es daher nicht möglich zu unterscheiden, ob auf ein Objekt zugegriffen wird, oder auf eine Zählervariable.

Deskriptoren werden im Bereich 10.100 bis 2.147.483.647 fortlaufend vergeben. Der Wertebereich vom Typ handle ist der gleiche, wie vom Typ int. Somit können auch Fehlercodes von Funktionen verarbeitet werden.

Die beiden Datentypen sind bis auf kleine Ausnahmen zueinander kompatibel, damit bestehende Prozeduren ohne zwingende Umstellung weiter betrieben werden können. Mit dem Datentyp handle können keine arithmetischen Operationen durchgeführt werden. Dafür können selbst entwickelte Funktionen mit dem Pfeiloperator aufgerufen werden. Der Zugriff auf Funktionen von CONZEPT 16 ist mit beiden Datentypen per Pfeiloperator möglich.

Beispiel:
sub Func
(
  aObj               : handle;
)
{
  // …
}

main
(
)
  local
  {
    tObj             : handle;
  }
{
  // …
  tObj->Func();
  // …
}

Wäre das Argument aObj der Funktion Func vom Typ int, müsste der Aufruf wie folgt aussehen:

Func(tObj);
Fazit:

Der Datentyp handle eignet sich besonders um Deskriptoren zu verwalten, da der Variableninhalt nicht so einfach versehentlich verändert werden kann. Zudem kann der Aufruf der Funktion wahlweise auch mit dem Pfeiloperator erfolgen, wodurch beim Lesen der Funktion sichtbar ist, dass es sich bei dem Parameter um ein Objekt handelt. Durch den extra Datentyp für Deskriptoren dient handle zusätzlich auch der Selbstdokumentation des Prozedurcodes.

Keine Kommentare

Kommentar abgeben