Generic参数类的类引用

Nat*_*Nat 4 delphi generics delphi-2009

我有一个持久性框架,我正在尝试使用泛型,所以我不必继续为我希望以类型安全的方式存储的每种类型的对象创建新的列表类.

我有一个方法返回列表类中包含的对象的类(所以我知道要运行哪些查询以及要创建哪个对象.

例如,它看起来像这样:

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.
Run Code Online (Sandbox Code Playgroud)

在这种情况下,有没有办法返回泛型参数的类?

谢谢

N @(使用Delphi 2009)

Mas*_*ler 6

这是Delphi 2009中的一个已知问题. 它已于2010年修复.我刚测试它,你的代码在那里编译得很好.