C_VARIANT, um verschiedene Arten von Werten zu speichern

Manchmal möchte man einen Code schreiben, der mit verschiedenen Variablentypen arbeiten kann, dies gilt insbesondere für generische Kodierung. Die Verwendung von Zeigern kann dazu führen, dass der Code schwieriger zu lesen und zu debuggen ist. Manchmal ist es überhaupt nicht möglich, zum Beispiel, wenn Sie eine generische Variable einem Formularobjekt als Datenquelle zuweisen wollen.

Ein neuer Befehl steht Ihnen nun zur Verfügung, mit dem Sie eine Variable deklarieren können, die verschiedene Typen von Werten speichern kann. Begrüßen Sie den neuen C_VARIANT Befehl!

Testen Sie den Typ Ihrer Variante

Der Datentyp variant kann zur Darstellung anderer Datentypen (außer Arrays) verwendet werden. Das bedeutet, dass der Typ der Variablen variant ist, der Typ des Wertes aber Text, Longint oder ein anderer gültiger Typ sein kann. Sie können mit dem Type Befehl können Sie den Typ der Variablen abfragen und den Value type für den Typ des Wertes:

C_VARIANT($variant)
$t :=Type($variant) // type: variant
$vt :=Value type($variant) // value type: undefined

$variant :=6.5
$t :=Type($variant) // type: variant
$vt :=Value type($variant) // value type: real

$variant :="Hallo Welt"
$t :=Type($variant) // type: variant
$vt:=Value type($variant) // value type: text

Variante als Methodenparameter

Es kann auch vorkommen, dass Sie Methoden erstellen müssen, die Parameter mit verschiedenen Typen akzeptieren.Jetzt brauchen Sie keine Zeigermehr, sondern können Methoden erstellen, die den Variant-Datentyp als Parameter akzeptieren:

C_COLLECTION($1)
C_VARIANT ($2)

if ($2#Null)

$1 .push($2)
end if

Und natürlich können Sie auch Methoden erstellen, die den Variantentyp zurückgeben:

C_TEXT($1;$JSFunction)
C_VARIANT ($0;$Result)

$JSFunction :=$1

WA EXECUTE JAVASCRIPT FUNCTION (MyWArea;$JSFunction;$Result)

$0 :=$Result

Der Variant-Datentyp kann in vielerlei Hinsicht nützlich sein, insbesondere dann, wenn Sie Null- oder unbestimmte Werte verwenden müssen. Weitere Details finden Sie im Doc Center.

Fabrice Mainguené
- Product Owner -Fabrice Mainguené gehört seit November 2016 zum 4D Program Team. Als Product Owner ist er verantwortlich für das Schreiben der User Stories und deren Umsetzung in funktionale Spezifikationen. Seine Aufgabe ist es auch, sicherzustellen, dass die gelieferte Funktionsimplementierung den Kundenanforderungen entspricht.Nach seinem Bachelor-Abschluss in Informatik am CNAM arbeitete Fabrice als Windev-Entwickler bei einem kleinen Software-Verlag. Danach arbeitete er für verschiedene Unternehmen in Industrie und Handel als Windev- und Webentwickler sowie als technischer Berater für neue Funktionen.