Einzelnen Beitrag anzeigen

Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#14

AW: Record Verwalten - Wie am besten ?

  Alt 3. Mai 2011, 11:55
Klingt irgendwie nach einem Dictionary, besonders wenn du denn Index nur zum Durchlaufen brauchst.
+1
Alzaimars Klassen sind alles andere als "fett". Wer seine Beiträge kennt, weiß wie wichtig ihm Performance ist.
Und seine kleinen Hashlisten sind mehr zackig genug. Wenn du Zugriff zu neueren Delphis hast, kannsu dir TDictionary<int, String> ankieken.
Bis dahin ist sein TIntegerDictionary so ziemlich das wassu willst.
Zum Glück gibt es inzwischen (seit D2009) auch noch die generische TList<>, welche da vieles vereinfacht.
(auch wenn dieses eine kleine und manchmal gemeine Einschränkung besitzt, was das nachträgliche Ändern eines Recordinhaltes betrifft )
Records sind Werte, keine Objekte und erst recht keine "Entitäten". Und in fast jedem Fall sollten Werte unveränderlich sein. Will heißen, dass eine Änderung eine veränderte Kopie liefern sollte. Nur so ist klar was unter der Haube tatsächlich passiert.

Delphi-Quellcode:
var x, y TDeinRecord;
begin
  x.Abc := 1;
  y := x;
  x.Abc := 2
  Assert(y.Abc = 2, 'Ja y.Abc = 1, denn y hat bekam ja auch eine KOPIE, so arbeiten reine *Werte* nunmal.');
end;
http://stackoverflow.com/questions/441309/why-are-mutable-structs-evil
Wer Records als Objekte missbraucht, weil er keinen Bock auf Speicherverwaltung hat, hat die falsche Laufzeitumgebung gewählt.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat