C_VARIANT pour stocker différents types de valeurs

Traduit automatiquement de Deepl

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.

Fabrice Mainguené
- Product Owner -Fabrice Mainguené a rejoint l'équipe du programme 4D en novembre 2016. En tant que Product Owner, il est en charge de rédiger les user stories puis de les traduire en spécifications fonctionnelles. Son rôle est également de s'assurer que l'implémentation de la fonctionnalité livrée répond au besoin du client.Après avoir obtenu une licence en informatique au CNAM, Fabrice a rejoint une petite société d'édition de logiciels en tant que développeur Windev. Il a ensuite travaillé pour différentes entreprises dans les domaines de l'industrie et du commerce en tant que développeur Windev et web ainsi que conseiller technique sur les nouvelles fonctionnalités.