我正在尝试使用公共属性Get / Let过程为类模块中的私有数组分配一些值。但是当我尝试获取值时,数组显示为空。这是为什么?
以下是相关代码:
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
答案 0 :(得分:0)
在Property Get过程中,在分配返回值时不要指定索引:
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
如果您指定索引,那么您实际上是使用参数d1
和pdt_RentStepDate(d1)
调用Property Let,而不是为Property Get分配返回值。 (这没有效果,因为Property Let最终将pdt_RentStepDate(d1)
设置为自身。)由于没有指定返回值,因此Property Get始终返回一个空Date。