【发布时间】:2014-04-23 13:24:26
【问题描述】:
如article所示,可以在C#中定义:
public class MyTreeNode<T> where T: MyTreeNode<T>
{
}
然而,在 Delphi 中,以下代码无法编译并报错“E2003 Undeclared identifier: 'MyTreeNode'”:
type
TMyTreeNode<T: TMyTreeNode<T>> = class
end;
正式的术语似乎是"self-referencing generics constraint"。我想知道如何在 Delphi 中做到这一点?
PS:
Another useful article as David pointed out。
Relevent SO post regarding Delphi and covariance / contravariance。
【问题讨论】:
-
你不能用 Delphi 通用约束来做到这一点
-
@DavidHeffernan 感谢您的评论!