procedure Test<TType: class, constructor>;
procedure TTestClass.Test<TType>;
var
Obj1: IInterface;
begin
Obj1 := TType.Create as IInterface;
end;
给出以下编译错误:
[DCC错误] TestCNCTypesSerialization.pas(76):E2015操作员没有 适用于此操作数类型
我不明白为什么。我找不到办法让这项工作......
谢谢!
答案 0 :(得分:5)
编译器没有理由相信泛型类型实现IInterface
。您没有限制从实现IInterface
的类派生的泛型类型。
您可以通过这种方式约束班级,但这可能过于严格。或者使用Supports
来获取接口。