procedure Test<TType: class, constructor>;
procedure TTestClass.Test<TType>;
var
Obj1: IInterface;
begin
Obj1 := TType.Create as IInterface;
end;
Run Code Online (Sandbox Code Playgroud)
给出以下编译错误:
[DCC错误] TestCNCTypesSerialization.pas(76):E2015运算符不适用于此操作数类型
我不懂为什么.我无法找到一种方法来完成这项工作......
谢谢!
编译器没有理由相信泛型类型实现IInterface.您没有约束要从实现的类派生的泛型类型IInterface.
你可以用这种方式约束类,但这可能限制太多了.或者用于Supports获得界面.
| 归档时间: |
|
| 查看次数: |
260 次 |
| 最近记录: |