У меня есть класс с членом, который является массивом двойных
'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)
приводит к ошибке:
Свойство пусть процедура не определена, а свойство 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 в определении класса? Есть ли способ прямого доступа к членам объекта, когда они имеют тип массив?
Извините, я не описал минимальный рабочий пример - код распределен по нескольким модулям и классам.