我正在做一些遗留应用程序的工作,而我的VB6技能并不是那么棒。我需要检查一个String字段是否已经被初始化,并设置为null/nothing或空字符串以外的内容。在C#中我只是这样做:VB6相当于string.IsNullOrEmpty
if (string.IsNullOrEmpty(myObj.Str))
我不知道什么是相当于,这是在VB6,我担心使用If myObj.Str = ""
,把它很好。什么是正确的方法来做到这一点?
为了澄清,我想要的东西,如果有以下为真,将返回true:
- 领域尚未初始化
- 领域是一个空字符串(STR =“”,长度= 0)
- 该字段设置为null,或者Nothing或vbnull,或者任何形式的null值应用于VB6字符串。
领域原本是龙,而我更换代码检查它是否被设置为0
将vbNullString转换为API函数的LPCSTR参数可能是个问题。 – wqw 2012-01-07 10:43:55
@wqw真(但相当罕见的情况)。我会编辑说“几乎任何” – MarkJ 2012-01-07 16:27:01
不正确。字符串不会自动初始化为空。使用StrPtr(s)将为空字符串(vbNullString)返回0,并且StrPtr(“”)将返回空字符串的地址。但是,VB6确实对待它们都是一样的,它只是可能关心的API调用。 – 2012-01-07 18:51:47