按照我之前的问题,我试图从其中一个答案中编译代码.
type
TSearchableObjectList<T> = class(TObjectList<T>)
end;
Run Code Online (Sandbox Code Playgroud)
编译器不会编译它并报告此错误消息:
[dcc32 Error]: E2511 Type parameter 'T' must be a class type
这个错误消息意味着什么,我该如何修复代码?
Dav*_*nan 11
TObjectList<T>包括通用的限制即T是一个类.类型声明如下:
type
TObjectList<T: class> = class(TList<T>)
...
end;
Run Code Online (Sandbox Code Playgroud)
您可能认为约束是继承的,但事实并非如此.因此,您需要在类中包含约束.像这样指定约束:
type
TSearchableObjectList<T: class> = class(TObjectList<T>)
...
end;
Run Code Online (Sandbox Code Playgroud)