为私有数组创建 属性 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空日期。
我正在尝试使用 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空日期。