Delphi 是否可以创建泛型约束方法?
我在代码中创建了以下简单类,并收到“TObject不是有效约束”错误消息Delphi 是否可以创建泛型约束方法?,delphi,generics,delphi-2010,constraints,delphi-xe2,Delphi,Generics,Delphi 2010,Constraints,Delphi Xe2,我在代码中创建了以下简单类,并收到“TObject不是有效约束”错误消息 TTest = class class function Test<T:TObject>(Dummy: integer): string; end; ... class function TTeste.Teste<T>(Dummy: integer): string; begin Result := 'Compiled'; end; TTest=class
TTest = class
class function Test<T:TObject>(Dummy: integer): string;
end;
...
class function TTeste.Teste<T>(Dummy: integer): string;
begin
Result := 'Compiled';
end;
TTest=class
类函数测试(伪:整数):字符串;
结束;
...
类函数TTeste.Teste(伪:整数):字符串;
开始
结果:='已编译';
结束;
我做错了什么?这可能吗?(由于我们将在接下来的两周内收到XE2许可证,因此您可以在D2010之后的版本中包括可用的选项)。尝试
类
约束:
TTest = class
class function Test<T:class>(Dummy: integer): string;
end;
TTest=class
类函数测试(伪:整数):字符串;
结束;
它可能不仅接受普通类,而且还与该约束接口(在C中是这样的,Delphi泛型模仿C泛型)。搜索“泛型约束”时的第一个点击Delphi回答了这个问题。几乎不眠之夜。。。我通常没那么懒。。我根本不记得做过这件事。我真丢脸;-)这个答案是正确的。但是
T:class
和T:TObject
之间的语义区别在哪里呢?接口不被接受,并产生错误E2511
。