Come mostrato in questa article, si può definire in C#:Come definire una classe con un vincolo generico autoreferenziale in Delphi?
public class MyTreeNode<T> where T: MyTreeNode<T>
{
}
In Delphi, invece, il seguente codice non compila e si lamenta "E2003 identificatore non dichiarato: 'MyTreeNode <>'":
type
TMyTreeNode<T: TMyTreeNode<T>> = class
end;
La terminologia formale sembra essere "self-referencing generics constraint". Mi chiedo come si fa a Delphi?
PS:
Another useful article as David pointed out.
Relevent SO post regarding Delphi and covariance/contravariance.
Wikipedia page of co/contra-variance.
Non è possibile farlo con i limiti generici di Delphi –
@DavidHeffernan Grazie per il tuo commento! – SOUser