在VBA中,如果我将字符串或类似字符串与vbNullString
进行比较而不是空字符串,它会有什么不同; ""
?如果是这样,两者之间有什么不同?
答案 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
,它们甚至可以更好地使用它!“
本文的其余部分提供了有关优化字符串的其他信息,这些信息也可能具有洞察力。
答案 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。