Delphi TObjectDictionary наследование - PullRequest
0 голосов
/ 18 октября 2018

Разрешено ли / поддерживается ли наследование классов TObjectDictionary в Delphi Berlin?

У меня есть несколько классов вида

TClass1 = class( TObject )
  ID : Cardinal;
end;

TDictionaryClass = class( TObjectDictionary<Cardinal, TClass1>)
end;

TClass2 = class( TClass1 )
end;

TDictionaryClass2 = class( TDictionaryClass )
end;

var
  dc2 : TDictionaryClass2;

При создании и добавлении объектов типа TClass2 в TDictionaryClass2 все видятчтобы работать нормально, и экземпляр TDictionaryClass2 имеет правильное количество.Однако такие операции, как dc2.Keys.ToArray, приводят к нарушениям доступа.У меня есть много базовых функций в TDictionaryClass, поэтому приведенная выше конструкция удобна, но допустима ли она, и если да, то что делает массив Keys недоступным?

Если это невозможно, существует ли другой механизм для объявлениябазовый класс с большинством общих функциональных возможностей, сохраняя при этом типизированный словарь внешнего вида потомков?

1 Ответ

0 голосов
/ 18 октября 2018

Нет ничего плохого в коде, показанном здесь.Эти шаблоны наследования совершенно нормальны и широко используются.

Очевидно, у вас есть дефект в вашем коде, но его нет в коде, показанном здесь.Вам нужно будет отладить свой код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...