vbNullString和“”之间有什么区别吗?

时间:2015-09-07 09:29:35

标签: vba

在VBA中,如果我将字符串或类似字符串与vbNullString进行比较而不是空字符串,它会有什么不同; ""?如果是这样,两者之间有什么不同?

2 个答案:

答案 0 :(得分:13)

vbNullString""不同。这是一个描述内存使用差异的网页exerpt。

“这是清除字符串变量的常用方法。

Text$ = ""

多么浪费!首先,每次使用时,字符串""占用6个字节的RAM。考虑替代方案:

Text$ = vbNullString

这是什么? vbNullString是一个特殊的VB常量,表示一个空字符串。 ""文字是一个空字符串。有一个重要的区别。空字符串是一个真正的字符串。空字符串不是。它只是一个零。如果你知道C语言,vbNullString相当于NULL。

对于大多数用途,vbNullString相当于VB中的""。唯一的实际区别是vbNullString分配和处理的速度更快,而且占用的内存更少。

如果您调用某些非VB API或组件,请在分发应用程序之前使用vbNullString测试呼叫。您正在调用的函数可能不会检查NULL字符串,在这种情况下它可能会崩溃。在处理字符串参数之前,非VB函数应检查NULL。运气不好,你所调用的特定功能并没有这样做。在这种情况下,请使用""。通常API支持vbNullString,它们甚至可以更好地使用它!“

本文的其余部分提供了有关优化字符串的其他信息,这些信息也可能具有洞察力。

完整网页:http://www.aivosto.com/vbtips/stringopt.html

答案 1 :(得分:6)

https://www.twilio.com/docs/client/connection#sendDigits声明为变量分配""使用6个字节的内存,而使用vbNullString则不会使用任何内存。

就个人而言,我更喜欢评估字符串的长度。如果长度为0,那么我们也得出字符串为vbNullString""的结论。这种方法被认为是检查vbNullString的最快方法。

If Len(string) = 0 Then

您可以阅读Len vs vbNullString vs ""比较This comparison