Einzelnen Beitrag anzeigen

Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Code von generischen Methoden/Klassen

  Alt 7. Jun 2010, 16:55
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...

Geändert von implementation ( 7. Jun 2010 um 17:27 Uhr) Grund: kleine Verbesserung
  Mit Zitat antworten Zitat