Einzelnen Beitrag anzeigen

DrTight

Registriert seit: 17. Okt 2014
8 Beiträge
 
#20

AW: records oder klassen?

  Alt 9. Jun 2016, 09:23
Was aber auch geht ist

Code:
type
  TMyDaten = Record
    Bla : Integer;
    Foo : boolean;
  end;
var
  LMyDaten :TMyDaten;
begin
  LMyDaten = Default(TMyDaten); // Record wird Initialisiert (alle Felder auf 0)
  LMyDaten.Bla := 42;
end;
Bla = 42 und Foo wäre False
Der Record wird wie eine lokale Variable behandelt (inclusive Speicher reservieren in Recordgröße und ohne Initialisierung) die auf den Stack abgelegt wird.

Records sind nix anderes als strukturierte Variablen.
Das gute an Records ist, das man sich nicht um das Freigeben des Speichers kümmern muss (Es sei denn man verwendet New())
Auch das kopieren von Records geht einfach durch Zuweisung (Achtung: Bei Pointer ,Klassen, variablen Arrays und Methodenreferenzfeldern wird nur die Adresse kopiert nicht der Inhalt)
Sie eignen sich gut als Übergabe und Resultparameter für Functionen und Proceduren.

Geändert von DrTight ( 9. Jun 2016 um 09:26 Uhr)
  Mit Zitat antworten Zitat