![]() |
Generics: Wie Unterklasse von TObjectList erstellen?
Hallo,
ich habe 2 Klassen: TMyObj und als Unterklasse davon TMySubObj. Zu TMyObj gibt es eine TObjectList: "TMyObjList". Zu TMySubObj soll es jetzt auch eine TObjectList geben, die aber nicht von TObjectList abgeleitet wird, sondern von TMyObjList. Wie stelle ich das an? So hab ichs mir vorgestellt, compiliert aber nicht:
Delphi-Quellcode:
TMyObj = class(TObject)
private FFoo: string; published property Foo: string read FFoo write FFoo; end; TMySubObj = class(TMyObj) private FBar: string; published property Bar: string read FBar write FBar; end; TMyObjList = class(TObjectList<TMyObj>) public procedure Example1; end; TMySubObjList = class(TMyObjList<TMySubObj>) //TMyObjList mag der Compiler hier nicht public procedure Example2; end; |
AW: Generics: Wie Unterklasse von TObjectList erstellen?
Das geht nicht.
Der generische Typ von TMyObjList ist bereits auf TMyObj festgelegt. Du kannst das da nicht auf TMySubObj umbiegen. Die einzige Möglichkeit ist, dass du eine "TMyBaseList" (o.ä.) erstellst, die selbst generisch ist (ggf. mit einem constraint auf dein TMyObj):
Delphi-Quellcode:
TMyBaseList<T : TMyObj> = class(TObjectList<T>)
public procedure Example1; end; TMyObjList = class(TMyBaseList<TMyObj>) public end; TMySubObjList = class(TMyBaseList<TMySubObj>) public procedure Example2; end; |
AW: Generics: Wie Unterklasse von TObjectList erstellen?
Zitat:
Edit: Ups, da warst Du schneller und hast Deine Antwort ergänzt. |
AW: Generics: Wie Unterklasse von TObjectList erstellen?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz