Quelle est la différence entre vbNullString et “”?
En VBA, elle ne fait aucune différence si je compare une chaîne de caractères, ou similaire, contre vbNullString
au lieu de par rapport à une chaîne vide; ""
? Si oui, quelles sont les différences entre les deux?
Voir Rob Bovey commentaire à dailydoseofexcel.com/archives/2008/06/26/...
OriginalL'auteur eirikdaude | 2015-09-07
Vous devez vous connecter pour publier un commentaire.
vbNullString
et""
sont différents. Voici un extrait de la page web qui décrit l'utilisation de la mémoire différences."C'est la manière habituelle pour effacer une variable de chaîne.
Quel gaspillage! Tout d'abord, la chaîne
""
prend 6 octets de RAM à chaque fois que vous l'utilisez. Envisager l'alternative:Alors qu'est-ce?
vbNullString
est une spéciale VB constante qui dénote une chaîne nulle. Le""
littérale est une chaîne vide. Il y a une différence importante. Une chaîne vide est une véritable chaîne. Une chaîne nulle ne l'est pas. C'est juste un zéro. Si vous connaissez le langage C,vbNullString
est l'équivalent de la valeur NULL.Pour la plupart des fins,
vbNullString
est équivalent à""
en VB. La seule différence est quevbNullString
est plus rapide d'attribuer et de processus, et il prend moins de mémoire.Si vous appelez certains non-VB API ou d'un composant, de tester les appels avec
vbNullString
avant de distribuer votre application. La fonction que vous appelez peut pas vérifier une chaîne NULLE, auquel cas il risque de plantage. Non-fonctions VB doit vérifier la valeur NULL avant de traiter un paramètre de chaîne. Avec de la malchance, la fonction particulière que vous appelez ne pas le faire. Dans ce cas, utilisez""
. Généralement Api n'soutienvbNullString
et ils peuvent même mieux avec elle!"Le reste de l'article dispose de plus d'informations sur l'optimisation des chaînes de caractères qui peuvent être perspicaces.
Pleine page web: http://www.aivosto.com/vbtips/stringopt.html
OriginalL'auteur GoeschWho
Cette comparaison états que l'attribution d'
""
à une variable utilise 6 octets de mémoire tandis que l'utilisation devbNullString
de ne pas utiliser toute la mémoire.Personnellement, je préfère pour évaluer la longueur d'une chaîne. Si la longueur est 0, alors nous arrivent également à la conclusion que la chaîne est un
vbNullString
ou""
. Cette méthode est reconnue comme étant la méthode la plus rapide de vérification pour unevbNullString
.Vous pouvez lire un
Len
vsvbNullString
vs""
comparaison ici.Il y a une différence,
""
est une chaîne de longueur zéro,vbNullString
est un pointeur null de typeString
(ne pointe pas vers une chaîne de caractères). Pour fins de comparaison entre VB masque la différence, mais parfois vous voulez afficher.Le 2ème lien est mort: voici une archive
OriginalL'auteur luke_t