Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
31. Aug 2011
Haben die das in XE nun eingebaut?
Kann aber auch sein, daß ich in einen anderen Genericfehler reinlief, denn als ich sowas mal versuchte, ging es nicht.
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
31. Aug 2011
?
TBasicGraph<E, V> = class
private
FEdges: TBasicEdgeList<E, V, TBasicEdge<E, V>>;
Wenn du diesen Typen nicht schon type TBasicEdgeList<...> = class( {hier} ); benötigen würdest, dann wäre ein Subtype möglich gewesen.
TBasicGraph<E, V> = class
private
type TMyBasicEdge = TBasicEdge<E, V>;
Forum: Object-Pascal / Delphi-Language
Delphi
by himitsu,
31. Aug 2011
<ET: TBasicEdge> geht halt nicht. Man kann nur sowas sagen, wie record oder class.
Auf eine bestimmte Klasse kann man (bescheuerter Weise) keinen Typen einschränken.
Du müßtest TBasicEdge<T, V> also erst bei der Implementation deines neuen Typs angeben.
evtl so?
TBasicEdgeList<T, V, ET: class> = class(TList<ET>);
TEdge = TBasicEdge<T, V, TBasicEdge<T, V>>