У меня есть структура persistence, и я пытаюсь использовать generics, поэтому мне не нужно создавать новые классы классов для каждого типа объектов, которые я хочу хранить безопасным типом. .Ссылка на класс из класса общих параметров
У меня есть метод, который возвращает класс, содержащийся объект в классе списка (так что я знаю, какие запросы запускать и которые возражают против создания
В качестве примера, это выглядит примерно так:
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)
Вы. Находятся. Легенда. Благодаря! Не могу дождаться выхода 2010 года (должно быть, завтра, yay!). – Nat
Прохладный! Улучшенный RTTI сделает настойчивость намного проще, BTW. :) –