Die generischen Parameter werden nicht erst zur Laufzeit ausgewertet, sondern direkt vom Compiler, der dann die entsprechenden spezialisierten Klassen erstellt. Stell es dir etwa so vor:
Delphi-Quellcode:
type
TGeneric<TGenParam> = class
private
Feld: TGenParam;
end;
...
var
xyz: TGeneric<Integer>;
abc: TGeneric<string>;
Der Compiler macht macht etwa das folgende daraus: (bzw.
behandelt es so um's korrekter auszudrücken)
Delphi-Quellcode:
type
TGeneric_Integer = class
private
Feld: Integer;
end;
TGeneric_String = class
private
Feld: string;
end;
var
xyz: TGeneric_Integer;
abc: TGeneric_string;
Zur Laufzeit muss da also überhaupt nix mehr passieren...