我有一个处理多个数字数组(类型为double)的类,还需要处理一个描述符数组,这些描述符将包含字符串和整数的混合,需要相应地用作字符串和数字。所以我决定创建一个类型为variant的数组属性(不是包含数组的变体)。但这个似乎不起作用,而类型双数组。
具体来说,这种类型的double array-property工作正常,可以一次接收或返回一个数组:
Private p_dbNumericArray() As Double
Public Property Let NumericArray(Value() As Double)
p_dbNumericArray() = Value()
End Property
Public Property Get NumericArray() As Double()
NumericArray() = p_dbNumericArray()
End Property
但是当我使用类型变量数组尝试相同的模式时,Get属性返回一个空/未分配的变量数组:
Private p_vaVariantArray() As Variant
Public Property Let VariantArray(Value() As Variant)
p_vaVariantArray() = Value()
End Property
Public Property Get VariantArray() As Variant()
VariantArray() = p_vaVariantArray()
End Property
在变体中包装数组(而不是使用类型变量的数组),当然可以正常工作:
Private p_vaVariantArray As Variant
Public Property Let VariantArray(Value As Variant)
p_vaVariantArray = Value
End Property
Public Property Get VariantArray() As Variant
VariantArray = p_vaVariantArray
End Property
但是,对Dim D()As Double起作用的模式是否适用于Dim V()As Variant,属性中是否已知且标准?
答案 0 :(得分:2)
Public Property Get VariantArray() As Variant()
VariantArray = p_vaVariantArray()
End Property
请注意缺少的括号。