![]() |
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? |
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. |
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? |
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:
ist.
OwnsObjects == True
|
AW: TObjectList oder TList - wo ist der große Unterschied
Bei neueren Delphi-Versionen sollte man Generics verwenden
Also: TList<TMeineKlasse> |
AW: TObjectList oder TList - wo ist der große Unterschied
Zitat:
|
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:
|
AW: TObjectList oder TList - wo ist der große Unterschied
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:24 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 by Thomas Breitkreuz