6

在我之前的问题之后,我试图从那里的一个答案中编译代码。

 type 
   TSearchableObjectList<T> = class(TObjectList<T>)
   end;

编译器不会编译它并报告此错误消息:

[dcc32 错误]:E2511 类型参数“T”必须是类类型

此错误消息是什么意思,我应该如何修复代码?

4

1 回答 1

11

TObjectList<T>包括一个作为类的通用约束T。类型声明如下:

type
  TObjectList<T: class> = class(TList<T>)
    ...
  end;

您可能认为约束是继承的,但事实并非如此。所以你需要在你的类中包含约束。像这样指定约束:

type
  TSearchableObjectList<T: class> = class(TObjectList<T>)
    ...
  end;
于 2013-07-19T08:09:39.953 回答