为私有数组创建 属性 Get/Let 过程

Creating Property Get/Let procedures for a private array

我正在尝试使用 public 属性 Get/Let 过程将多个值分配给 class 模块中的私有数组。但是当我尝试取出值时,数组显示为空。这是为什么?

相关代码如下:

Private pdt_RentStepDate(23) As Date

Public Property Get dt_RentStepDate(ByRef d1 As Integer) As Date
    dt_RentStepDate(d1) = pdt_RentStepDate(d1)
End Property

Public Property Let dt_RentStepDate(ByRef d1 As Integer, something As Date)
    pdt_RentStepDate(d1) = something
End Property

在您的 属性 Get 过程中,当您分配 return 值时不要指定索引:

Public Property Get dt_RentStepDate(ByRef d1 As Integer) As Date
'   dt_RentStepDate(d1) = pdt_RentStepDate(d1)  ' <-- WRONG
    dt_RentStepDate = pdt_RentStepDate(d1)      ' <-- RIGHT
End Property

如果您指定一个索引,那么您实际上是在调用 属性 Let 并使用参数 [=11=,而不是为 属性 Get 分配 return 值] 和 pdt_RentStepDate(d1)。 (这没有效果,因为 属性 Let 最终将 pdt_RentStepDate(d1) 设置为自身。)由于没有分配 return 值,因此 属性 Get 总是 returns空日期。