Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   TObjectList oder TList - wo ist der große Unterschied (https://www.delphipraxis.net/190843-tobjectlist-oder-tlist-wo-ist-der-grosse-unterschied.html)

dGeek 13. Nov 2016 19:31


TObjectList oder TList - wo ist der große Unterschied
 
Ich frage mich gerade, wo der große Unterschied in der Verwendung von TObjectList und TList liegt, wenn man Klasseninstanzen darin speichern möchte.
Bisher benutze ich immer TObjectList. Irgendwo habe ich aber mal gelesen, dass man für so etwas Triviales wie Klasseninstanzen eine normale TList nehmen sollte.

Wisst ihr da mehr?

stahli 13. Nov 2016 20:07

AW: TObjectList oder TList - wo ist der große Unterschied
 
TObjectList verwaltet direkt Objekte und keine Integer.
Du musst also Einträge später nicht selbst wieder in ein TObject casten.

Du kannst mit OwnObjects auch einstellen, dass die Liste Eigentümer der Objekte ist, wodurch ein Objekt beim Löschen aus der Liste gleichzeitig freigegeben wird.

Wenn Du Objekte speichern willst ist eine TObjectList schon sinnvoll.

dGeek 13. Nov 2016 20:10

AW: TObjectList oder TList - wo ist der große Unterschied
 
Hatte bisher mit den Klasseninstanzen in der TObjectList nie Probleme. Und OwnObjects weiß ich sehr zu schätzen - deswegen benutze ich TObjectList auch.
Wie sieht es denn mit dem Overhead aus zwischen TList und TObjectList?

Der schöne Günther 14. Nov 2016 07:54

AW: TObjectList oder TList - wo ist der große Unterschied
 
Schau doch mal in den Quelltext. TObjectList ist nichts weiter als eine Unterklasse von TList. Das einzige was sie zusätzlich macht ist das Freigeben der enthaltenen Objekte wenn
Delphi-Quellcode:
OwnsObjects == True
ist.

Bernhard Geyer 14. Nov 2016 08:40

AW: TObjectList oder TList - wo ist der große Unterschied
 
Bei neueren Delphi-Versionen sollte man Generics verwenden

Also: TList<TMeineKlasse>

SProske 14. Nov 2016 08:49

AW: TObjectList oder TList - wo ist der große Unterschied
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1353535)
Bei neueren Delphi-Versionen sollte man Generics verwenden

Also: TList<TMeineKlasse>

Ich würde auch mit Generics zur generischen TObjectList tendieren, wenn mit Klassen gearbeitet wird.

Der schöne Günther 14. Nov 2016 08:55

AW: TObjectList oder TList - wo ist der große Unterschied
 
Ich dachte das sei so selbstverständlich dass man das nicht mehr erwähnen muss :stupid:

Stevie 14. Nov 2016 09:18

AW: TObjectList oder TList - wo ist der große Unterschied
 
Zitat:

Zitat von SProske (Beitrag 1353536)
Zitat:

Zitat von Bernhard Geyer (Beitrag 1353535)
Bei neueren Delphi-Versionen sollte man Generics verwenden

Also: TList<TMeineKlasse>

Ich würde auch mit Generics zur generischen TObjectList tendieren, wenn mit Klassen gearbeitet wird.

Ich würd ja IList<T> nehmen :-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:44 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz