Forum: Object-Pascal / Delphi-Language
Delphi
by Khabarakh,
31. Aug 2011
Ah, das ist natürlich eine Möglichkeit :) . Da bin ich zu sehr an Typsysteme ohne Hintertür gewöhnt ;) .
Eben nicht. Dafür müssten alle Member der Klasse kovariant im Typparameter sein (dieser darf also nur als Rückgabetyp auftauchen), Add zum Beispiel ist aber kontravariant. Für typsichere Kovarianz müsste man sich wie gesagt auf eine Teilmenge von Membern beschränken; in .NET ist...
Forum: Object-Pascal / Delphi-Language
Delphi
by Khabarakh,
31. Aug 2011
Wenn ich das richtig sehe, ist dein Problem, dass TBasicEdgeList<E, V, TDirectedEdge<E, V>> nicht von TBasicEdgeList<E, V, TBasicEdge<E, V>> abgeleitet ist, was in einer Sprache ohne Kovarianz wie Delphi auch vollkommen korrekt ist. Mit diesem Ansatz wirst du also an der Stelle ein wenig Typsicherheit aufgeben müssen, Delphis Typsystem erlaubt das einfach nicht.
Edit: Um die Sache mit der...