在Visual basic6中,有没有办法判断传递给函数的变量是否是对象?我希望能够测试变量是否为null、nothing或empty,但只有对象可以使用"Is Nothing“进行测试。有什么想法吗?
发布于 2011-11-19 00:27:27
函数是如何定义的?
如果它是... As Object,那么它要么是一个有效的object,要么是Null。
如果它是... As Variant (或没有类型),那么任何东西都可以传递,您可以使用IsEmpty()、IsNull() (注意,不是null对象,而是NULL值)或IsObject()进行检查,这取决于您在... Is Nothing检查之前到底想要检查什么。
如果参数是Optional,那么您可以使用IsMissing(),但它必须是没有默认值的变量类型。
此外,还可以查看this article中Null在VB中的各种用法。
发布于 2011-11-18 23:51:37
IsObject(variable)不难找到
发布于 2011-11-18 23:54:42
VB中有一个TypeOf运算符。不是简单值的所有内容(如Integer等)类型为Object。
If TypeOf Variable Is Object Then
' ...
End IfTypeOf还允许继承检查。例如,Outlook文件夹中的邮件项既是Object类型,又是Outlook.MailItem类型,因此您可以通过这种方式对泛型变量variale执行实际的类型安全检查。
请注意,If TypeOf ... 不适用于类型化为简单值的变量(即整型),而仅适用于对象类型的变量(变量、COM对象、内置对象)。
https://stackoverflow.com/questions/8185063
复制相似问题