我想创建一个基于提供给外部类的类型的嵌套类。我需要内部类来扩展T
一些成员:
TOuterClass<T:class> = class
type
TNestedClass = class(T)
MoreData:Integer;
end;
end;
编译器在class(T)
处显示“否”或更具体地 [DCC错误] MyUnit.pas(20):E2021类型类型。
以某种方式可以实现我想做的事情吗?
答案 0 :(得分:6)
不,那是不可能的。
答案 1 :(得分:2)
还没有。它可能应该,但编译器并没有真正考虑通用约束的所有后果。您应该将此作为功能请求添加到QC中。
答案 2 :(得分:0)
否但您可以在已解析T类型的派生类中使用
TOuterClass<T:class> = class
//Data
end;
TDerived = class(TOuterClass<TObject>)
type
TNestedClass = class(TObject)
MoreData:Integer;
end;
end;