У меня есть постоянная структура, и я пытаюсь использовать непатентованные средства, чтобы мне не приходилось создавать новые списочные классы для каждого типа объекта, который я хочу сохранить безопасным способом.
У меня есть метод, который возвращает класс содержащегося объекта в классе списка (поэтому я знаю, какие запросы нужно выполнить и какой объект создать.
В качестве примера это выглядит примерно так:
type
TMyObject = class
end;
TMyObjectClass = class of TMyObject;
TMyObjectList = class
public
function ListClass: TMyObjectClass; virtual; abstract;
end;
TMyObjectList<T: TMyObject, constructor> = class(TMyObjectList)
public
function ListClass: TMyObjectClass; override;
end;
implementation
{ TMyObjectList<T> }
function TMyObjectList<T>.ListClass: TMyObjectClass;
begin
result := T; // <==== this wont compile
end;
end.
Есть ли способ вернуть класс универсального параметра в этом случае?
Спасибо
N @
(с использованием Delphi 2009)