考虑这个程序:
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
不是类类型?