Parfois, vous souhaitez écrire du code en étant capable de travailler avec différents types de variables, ce qui est particulièrement vrai pour le codage générique. L’utilisation de pointeurs peut rendre le code plus difficile à lire et à déboguer. Parfois, ce n’est pas possible du tout, par exemple lorsque vous voulez affecter une variable générique à un objet de formulaire comme source de données.
Une nouvelle commande est maintenant à votre disposition pour vous permettre de déclarer une variable qui peut stocker différents types de valeurs. Dites bonjour à la nouvelle commande C_VARIANT commande !
Testez le type de votre variante
Le type de données variant peut être utilisé pour représenter d’autres types de données (à l’exception des tableaux). Cela signifie que le type de la variable est variant mais que le type de la valeur peut être Text, Longint ou un autre type valide. Vous pouvez utiliser la commande Type pour obtenir le type de la variable et la commande Value type pour le type de la valeur:
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 := "Hello world"
$t :=Type($variant) // type: variant
$vt:=Value type($variant)
// value type: text
Variante en tant que paramètre de méthode
Il arrive également que vous ayez besoin de créer des méthodes qui acceptent des paramètres de plusieurs types. Iln’y a plus besoin de pointeurs, vous pouvez créer des méthodes qui acceptent le type de données variant comme paramètre :
C_COLLECTION($1)
C_VARIANT ($2)
if ($2#Null)
$1 .push($2)
end if
Et, bien sûr, vous pouvez également créer des méthodes qui renvoient le type de variante :
C_TEXT($1;$JSFunction)
C_VARIANT ($0;$Result)
$JSFunction :=$1
WA EXECUTE JAVASCRIPT FUNCTION (
MyWArea;$JSFunction;$Result)
$0 :=$Result
Le type de données variant peut être utile à bien des égards, notamment lorsque vous devez utiliser des valeurs nulles ou indéfinies. Vous trouverez plus de détails sur le centre de documentation.