Recherche des types de valeur avant utilisation
VBScript est un langage de programmation « faiblement typé ». Cela signifie que vous pouvez créer, utiliser et accéder à des valeurs de données sans déclarer initialement leurs types. Toutefois, certaines opérations ne peuvent être effectuées que sur des valeurs d’un type spécifique. Il est donc important de vérifier le type de données avant d’effectuer toute opération sur celles-ci.
Les valeurs de différents types se comportent différemment dans les différentes déclarations. Le comportement de la valeur de l’objet est encore plus imprévisible car il dépend de l’implémentation de l’objet. Par exemple, l’objet dans l’appel <entity>_CanDelete(Entity) peut être soit du texte, soit un nœud sujet.
Recommandations
Pour éviter des résultats imprévisibles :
-
Vérifiez les types de valeurs avant de les utiliser, en particulier pour les types d’objets. Lorsque vous vérifiez un type d’objet, vérifiez également que l’objet possède les propriétés auxquelles vous avez accès.
Note : Dans les exemples fournis dans
-
Supposez le moins possible - ne supposez pas qu’une valeur est d’un certain type. Rédigez des scripts capables de gérer toutes les possibilités en utilisant des instructions Else et des instructions Select Case.
-
Vérifiez toujours les types de paramètres avant de les utiliser avec diverses fonctions VBScript, telles que IsArray, IsDate, IsNull, IsEmpty, IsNumeric et IsObject.
-
Ne supposez pas que la propriété par défaut d’un objet est d’un type spécifique ; Le type peut varier d’un objet à l’autre.
-
Utilisez les fonctions de conversion intégrées de VBScript pour atteindre un certain degré de sécurité de type.
-
Lorsque vous travaillez avec des objets, vérifiez que la valeur que vous recevez n’est ni nulle ni vide en appelant les fonctions IsNull et IsEmpty.
Exemple : Aux fins des exemples suivants, supposons que les valeurs des champs sont déclarées comme dans le tableau ci-dessous.
|
Valeurs de champ |
Type |
|---|---|
|
|
Integer |
|
|
String |
|
|
Objet implémentant l’interface ISysTreeNode |
Dans l’exemple suivant, l’utilisation de la déclaration est correcte. Le nombre entier est converti en chaîne.
If Bug_Fields["BG_BUG_ID"].Value = "10" Then...
Dans l’exemple suivant, l’utilisation de la déclaration est correcte. Les chaînes sont comparables.
If Bug_Fields["BG_SUMMARY"].Value = "some text" Then...
Dans l’exemple suivant, l’utilisation de la déclaration est incorrecte. Ce code ne peut fonctionner que si la valeur du champ BG_SUBJECT n’est ni Vide ni Nulle. VBScript suppose également que la valeur par défaut de cet objet (c’est-à-dire la propriété par défaut) est soit de type chaîne, soit comparable au type chaîne, ce qui n’est pas toujours le cas.
If Bug_Fields["BG_SUBJECT"].Value = "My Tests" Then...

