Retourner Null ou Rien de fonction VBScript?
Je suis en train d'écrire le script VBScript équivalent d'une fonction similaire à ce qui est ci-dessous:
object getObject(str)
{
if ( ... )
{
return object_goes_here;
}
return null;
}
Ma conjecture serait-dessous, sauf que je ne suis pas à comprendre la différence entre Rien et Nulle. Comme un appel, je préfère tester si la valeur de retour est définie à l'aide de IsNull()
contre X Is Nothing
.
Function getObject(str)
If ... Then
Set getObject = object_goes_here
Exit Function
End If
Set getObject = Nothing // <-- or should this be Null?
End Function
OriginalL'auteur user1128144 | 2012-01-20
Vous devez vous connecter pour publier un commentaire.
La bonne façon de ne pas renvoyer un objet, est de retour
Nothing
et de test pour lesIs Nothing
.VB est
Null
est une valeur spéciale de type Variant/Null. Il y a d'autres valeurs spéciales, telles que la Variante/Vide ou une Variante ou de l'Erreur. Ils ont tous leur utilisation, mais ce n'est pas le seul.accepte un
VARIANT
comme paramètre, pas un objet. Il examine ensuite lesVARIANT
et essaie de vous donner ce que vous attendiez. Retour d'unNull
si une chaîne opérande estNull
est un très standard concept commun en provenance de bases de données. Comme pour les chaînes en VB6 (et VBScript), ils ne sont pas des objets de toute façon, ils ne peuvent pas êtreNothing
. Eh bien, en quelque sorte ils peuvent, mais qui est appelévbNullString
et n'est pas détecté avecIs Nothing
.OriginalL'auteur GSerg
Utiliser la deuxième squelette de Fonction. Éviter Null lorsque l'on traite avec des objets, en raison de l'Ensemble de la Cession de l'abomination.
vs
OriginalL'auteur Ekkehard.Horner
Dans votre exemple de code, l'objet sera toujours
Nothing
parce que c'est la dernière action. C'est comment il devrait être:ou:
La réponse de GSerg est correct: vous devriez utiliser Rien d'autre. En outre, afin de voir si un objet a une référence null, utilisez:
OriginalL'auteur AutomatedChaos