AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Spring Collections erweitern

Ein Thema von Rainer Wolff · begonnen am 19. Mär 2014 · letzter Beitrag vom 10. Apr 2014
 
Der schöne Günther

Registriert seit: 6. Mär 2013
6.222 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Spring Collections erweitern

  Alt 19. Mär 2014, 08:19
Nur um sich die (für Delphi normale) Freigabe eines aggregierten Objekts im Destruktor (oder woanders) zu sparen steigt man wahrscheinlich nicht auf ein komplett neues Collection-Framework um.

Um ehrlich zu sein, war es bei mir aber ähnlich (Spring Collections sind toll).


Von einem Class Helper hast du nichts- Die gehen ja nur für Klassen, Records und einfache Typen (Integer, String, Enums, ...). Interfaces bleiben außen vor.

Ich persönlich würde meinen, dass sich es nur für die (ziemlich triviale) Eigenschaft "Summe aller Items bzgl. einer bestimmten Eigenschaft" auch nicht lohnt: In diesem speziellen Fall würde ich (ja, jedes mal) hingehen, über alle Items drüberrutschen und aufsummieren:

Delphi-Quellcode:
implementation uses Spring.Collections;

type TMyItem = class
   public var länge: Double;
end;

{$R *.dfm}

procedure TForm25.FormCreate(Sender: TObject);
var
   myQueue: IQueue<TMyItem>;
   gesamtlänge: Double;
begin

   myQueue := TCollections.CreateQueue<TMyItem>();

   // [Queue mit Inhalt füllen]

   gesamtlänge := 0;
   myQueue.ForEach(
      procedure(const item: TMyItem)
      begin
         gesamtlänge := gesamtlänge + item.länge;
      end
   );

   ShowMessage( gesamtlänge.ToString() );
end;

Ansonsten habe ich ehrlich gesagt auch nie wirklich Scheu davor, einen neuen Typen für meine ganz speziellen Zwecke zu erstellen. Also

Delphi-Quellcode:
type
   IMyQueue = interface(IQueue<TMyItem>)
      function getGesamtlänge(): Double;
   end;

   TMyQueue = class( Spring.Collections.Queues.TQueue<TMyItem>, IMyQueue)
      public function getGesamtlänge(): Double;
   end;
Dann sind deine Container nicht mehr vom Typ IQueue<TMyItem> sondern IMyQueue
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:20 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