![]() |
Delphi-Version: 2010
Vorteile/Nachteile einer generischen TObjectList?
Hallo,
ich habe eine Itemklasse und möchte diese in einer Liste nutzen. Dies habe ich nun mit einer generischen TObjectList gelöst:
Delphi-Quellcode:
Mit der Lösung kämpfe ich grad noch mit Memoryleaks. Und nun seh ich, dass ich TObjectList und Klassen auch ohne Generics nutzen kann. Deshalb stellt sich mir grad die Frage, wo der Vorteil von einer generischen TObjectList liegt?
VieleItems : TObjectList<TItem>;
Viele Grüße |
AW: Vorteile/Nachteile einer generischen TObjectList?
Der Vorteil ist wohl, dass man beim Zugriff auf ein TItem in der Liste keinen Cast machen muss. Aus TItem(Liste[i]).Machwas wird einfach Liste[i].Machwas. Wegen den Speicherlöchern könnte Liste.OwnsObjects := True nützlich sein.
|
AW: Vorteile/Nachteile einer generischen TObjectList?
Performance. Ich denke die Generische Lösung ist sehr viel schneller wegen der nicht nötigen Casts.
|
AW: Vorteile/Nachteile einer generischen TObjectList?
Zitat:
In der Instanz-Variablen steht doch eh nur der Zeiger auf den Speicherbereich. Da wird doch nicht umgerechnet |
AW: Vorteile/Nachteile einer generischen TObjectList?
Die is/as-Operationen benötigen einige CPU-Zeit. Impelementier mal eine Ableitung von TList mit harten Casts und eine Ableitung von TObjectList mit sicheren Casts mit is/as.
|
AW: Vorteile/Nachteile einer generischen TObjectList?
Du mußt ja nicht "as" casten
TMyObject(ListItem) ist genauso schnell wie generisch. |
AW: Vorteile/Nachteile einer generischen TObjectList?
Zitat:
|
AW: Vorteile/Nachteile einer generischen TObjectList?
Zitat:
* z.B. private Variable und man lässt Vorsicht walten. |
AW: Vorteile/Nachteile einer generischen TObjectList?
Danke für die vielen Antworten. Da werde ich bei der generischen TObjectList bleiben und dank Wicht sind die Speicherlecks auch Geschichte :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:31 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