我有一个类可以处理几个数字数组(双精度类型),还需要处理一个描述符数组,其中包括字符串和整数的混合,需要相应地用作字符串和数字。所以我决定创建一个变体类型的数组属性(不是包含数组的变体)。但是这个似乎不起作用,而类型 double 数组则起作用。
具体来说,这种类型的双数组属性工作正常,一次接收或返回一个数组:
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 的已知和标准吗?