1

我在第三类得到“E2511 类型参数'T'必须是类类型” 。

type TSomeClass=class
end;

ParentParentClass<T>=class 
end;

ParentClass<T: class> = class(ParentParentClass<T>)
end;

ChildClass<T: TSomeClass> = class(ParentClass<T>)
end;

我正在尝试为任何数据类型(ParentParentClass)编写一个精简的通用数组包装器,但是因为我无法释放类型标识符(如果 T 是 TObject 那么 Tobject(T).Free),我创建了第二个类,它对于类类型很有用,所以我可以释放对象。

第三类是我使用包装器的地方,但编译器会抛出该错误。我如何使它编译?

4

1 回答 1

5

这是Delphi 2009 的泛型处理中的一个错误。它已在 D2010 中修复。

于 2010-05-14T15:06:40.440 回答