相关疑难解决方法(0)

泛型:什么是"构造函数约束"?

我创建了一个自定义TObjectList后代,用于保存基础对象类的子类.它看起来像这样:

interface
   TMyDataList<T: TBaseDatafile> = class(TObjectList<TBaseDatafile>)
   public
      constructor Create;
      procedure upload(db: TDataSet);
   end;

implementation

constructor TMyDataList<T>.Create;
begin
   inherited Create(true);
   self.Add(T.Create);
end;
Run Code Online (Sandbox Code Playgroud)

我希望每个新列表都以一个空白对象开头.这很简单,对吧?但编译器不喜欢它.它说:

"无法在类型参数声明中创建没有CONSTRUCTOR约束的新实例"我只能假设这是与泛型相关的东西.任何人都知道发生了什么以及如何使这个构造函数工作?

delphi generics constructor delphi-2009

9
推荐指数
1
解决办法
3987
查看次数

标签 统计

constructor ×1

delphi ×1

delphi-2009 ×1

generics ×1