我有一个处理多个数值数组(双精度类型)的类,并且还需要处理一个描述符数组,其中包括字符串和整数的混合,需要相应地用作字符串和数字。所以我决定创建一个变体类型的数组属性(不是包含数组的变体)。但这似乎不起作用,而双精度数组却可以。
具体来说,这种类型的双数组属性工作得很好,可以一次接收或返回一个数组:
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 的模式是否已知且标准?
Public Property Get VariantArray() As Variant()
VariantArray = p_vaVariantArray()
End Property
请注意缺少的括号。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)