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

标签 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 之后版本上可用的选项,因为我们将在接下来的 2 周内收到 XE2 许可证)。

最佳答案

尝试class约束:

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

它可能不仅接受普通类,而且还接受与该约束的接口(interface)(在 C# 中确实如此,Delphi 泛型模仿 C# 泛型)。

关于delphi - 是否可以创建通用的约束方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8823384/

相关文章:

ios - 具有关联类型的协议(protocol)。如何避免在协议(protocol)的所有实现上手动分配类型

c++ - 如何概括 std::chrono::duration(s)?

delphi - 向 CreateThread 传递参数

kotlin - Kotlin 中 UInt 中位标志的 EnumSet

delphi - 用delphi编写客户端-服务器应用程序

delphi - 如何更改依赖项的文件扩展名

delphi - 如何计算出 TListBox.ScrollWidth 使用哪些值?

delphi - 在 TListView 中绘制复选框

delphi-2010 - TDataModule继承

delphi - 在备忘录上打字时如何计算字符和行数