如何在Delphi中定义具有自引用泛型约束的类



如本文所示,可以在C#中定义:

public class MyTreeNode<T> where T: MyTreeNode<T>
{
}

然而,在Delphi中,以下代码不编译,并抱怨"E2003未声明的标识符:'MyTreeNode<>'":

type
    TMyTreeNode<T: TMyTreeNode<T>> = class
    end;

形式术语似乎是"自引用泛型约束"。我想知道如何在Delphi中做到这一点?

PS:

大卫指出的另一篇有用的文章。

发布关于德尔菲和协方差/方差的SO帖子。

合作/反对差异的维基百科页面。

在Delphi中没有办法表达这样的通用约束。此外,我相信没有一种类型安全的方法可以在C#中实现这样的约束。

最新更新