是否可以从外部类提供的泛型类型派生嵌套类?

时间:2010-10-11 15:54:56

标签: delphi generics

我想创建一个基于提供给外部类的类型的嵌套类。我需要内部类来扩展T一些成员:

TOuterClass<T:class> = class
  type
    TNestedClass = class(T)
      MoreData:Integer;
    end;
end;

编译器在class(T)处显示“否”或更具体地 [DCC错误] MyUnit.pas(20):E2021类型类型

以某种方式可以实现我想做的事情吗?

3 个答案:

答案 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;