【发布时间】:2018-06-28 10:30:48
【问题描述】:
如果我有一个可能返回对象或原始类型的函数 - 在其中我可以执行以下操作来处理这两种情况:
Function Result() As Variant 'may be object or not
'... get item - the return value
If IsObject(item) Then
Set Result = item
Else
Result = item
End If
End Function
但是,如何在不运行两次函数的情况下对存储Result 的变量进行相同的测试?例如
Dim myResult As Variant
If IsObject(Result) Then 'test return type of function
Set myResult = Result
Else
myResult = Result
End If
作为
myResult = Result 'fails if Result returns object
Set myResult = Result 'fails if Result returns non-object
我正在尝试将一系列对象/非对象写入变体类型的数组
【问题讨论】:
-
我很好奇您不知道返回什么的细节。理论上,您已经声明了一个 var 来捕获返回,所以您什么时候不知道返回了什么?
-
@Jeeped 我正在编写一个缓冲区类,它需要一个数组/内容集合。它循环遍历将其添加到内部商店的内容。一旦内部存储达到一定容量,就会引发一个事件,并将存储中的内容写入一个可以读取的数组。由于内部存储不断被写入,我无法公开它,所以我需要以某种方式克隆它,这需要将未知类型的项目写入变量数组。