为什么通用类型中不允许使用T类?

时间:2013-12-14 15:19:28

标签: delphi

考虑这个程序:

type
  TMyClass<T: class> = class
  public type
    TClassOfT = class of T;
  end;

begin
end.

这无法在TClassOfT的声明中编译,并显示错误消息:

E2021 Class type required

任何人都可以解释为什么会这样吗?如果我要使用例如TMyClass<TObject>来实例化此类,那么肯定class of TObject将是有意义的。我将泛型参数约束为一个类。那么编译器如何对T不是类类型?

1 个答案:

答案 0 :(得分:3)

据我所知,编译器没有理由拒绝此代码。因此,我认为这是一个设计缺陷并已提交QC#121178