是否可以创建通用约束方法?

时间:2012-01-11 17:01:27

标签: 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;

我做错了什么?这可能吗? (您可以在D2010以后的版本中添加选项,因为我们将在接下来的两周内收到XE2许可证。)

1 个答案:

答案 0 :(得分:8)

尝试class约束:

TTest = class
  class function Test<T:class>(Dummy: integer): string;
end;

它可能不仅接受普通类,而且还接受具有该约束的接口(在C#中它,并且Delphi泛型模仿C#泛型)。