Gute Idee. Aber, ich hab gerade in der Hilfe gestöbert, was ist mit solchen Records:
Delphi-Quellcode:
record
Name : string;
Vorname : string;
Geburtstag : tdatetime;
Kenner : array [0..8] of char;
GenommeneUrlaubstage : byte;
end;
werden Geburtstag,Kenner und GenommeneUrlaubstage genullt oder nicht?
Ja, Default macht nix anderes, als zusätzlich noch FinalizeRecord aufzurufen, wenn managed Fields vorhanden sind.
Hier mal der Auszug aus dem assembler code:
Code:
006494C5 8D45D0 lea eax,[ebp-$30]
006494C8 8B15E8936400 mov edx,[$006493e8]
006494CE E809EEDBFF call @FinalizeRecord
006494D3 8BF8 mov edi,eax
006494D5 33C0 xor eax,eax
006494D7 B90A000000 mov ecx,$0000000a
006494DC F3AB rep stosd
Die Funktion gibts seit Generics, damit man in generischem Code ein leeres Element von irgendeinem Typ erzeugen kann (Default(T)).
Lässt sich aber ebend auch prima in nicht generischem Code benutzen.