我有一个类,其成员是double的数组
'cls_Person
Public Name as String
Public InAMeeting as Variant
'InAMeeting: Type: Array of Double.
'Sometimes with dimensions of 1 to 8, sometimes of 1 to 10.
我在循环中填充我的类,然后将它们填充到以字符串为键的全局字典中。
当我尝试直接从字典访问InAMeeting成员时出现问题:
'g_dict_People is a globally defined dictionary.
'KeyPerson is a unique key in the dictionary matching a filled object of type cls_Person
Dim Bravo as Double
Bravo = g_dict_People(KeyPerson).InAMeeting(3)
导致错误: 属性let过程未定义,属性get过程未返回对象(错误451)
但是,如果我首先从字典中创建对象的副本,那么它可以工作:
Dim Bravo as Double
Set temp_cls_Person = g_dict_People(KeyPerson)
Bravo = temp_cls_Person.InAMeeting(3)
我可以直接访问Name成员 - 这可以:
Dim Alpha as string
Alpha = g_dict_People(KeyPerson).Name
为何与众不同?是否与我在类定义中声明InAMeeting成员的方式有关?当它们是数组类型时,有没有办法直接访问对象的成员?
抱歉,我还没有详细介绍一个最小的工作示例 - 代码分布在多个模块和类中。