|
|
1
10
我并不完全了解VB的语法,但在C#中,你可以使用String静态方法
调试此方法时,它将检查。参数的长度。检查长度总是更快,因为在字符串比较时,编译器必须创建一个新的对象进行比较(在这种情况下是“ABC”字符串)。 |
|
|
2
5
没必要,不,我的意思是,你在开玩笑吗?有多少人编写程序,比较字符串是否为零长度,对性能有任何影响。即使字符串没有保留长度计数,VB每次都会进行c风格的strcmp()字符串比较,字符串比较函数也不会花很长时间来计算出其中一个字符串的长度为零,对吧?但是。NET字符串确实包含一个长度字段,因此当您进行字符串比较时,它要检查的第一件事是长度是否不同,即直接进行int比较。如果函数调用,并且只有JIT内联了Len(),你自己做这件事才能节省所有成本。 顺便说一句,在VB.NET中,你不需要调用String.IsNullOrEmpty(),因为字符串之间的比较被转换为对String.strcmp()的调用,该调用将null(VB中的Nothing)转换为对String.EmptyString的引用。然后,它继续调用Reflector无法检查的本机函数,但我非常确定它做的第一件事是检查字符串的长度是否不同。 |
|
|
3
1
您应该使用:
|
|
|
4
0
我认为VB6等效于IsNullOrEmpty的最佳解决方案是
具有讽刺意味的是,如果你有设置为vbEmpty的字符串或变量,那么这个函数将返回false,因为vbEmpty作为字符串是“0”。因此,如果你不小心使用这个版本,你可能会遇到一些奇怪的错误。 |