Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#6

AW: Generisches Interface und GUID

  Alt 8. Feb 2012, 16:33
Es ergeben sich dann allerdings ganz lustige Effekte. Der unbedarfte Programmierer könnte annehmen, die Assertions würden anschlagen:

Delphi-Quellcode:
type
  IMyInterface<T> = interface
    ['{FF9D4362-FBD2-4333-B6B0-09B1A026E8A1}']
    function Blub(): T;
  end;

  TMyClass<T> = class(TInterfacedObject, IMyInterface<T>)
  private
    FValue: T;
  public
    constructor Create(AValue: T);
    function Blub(): T;
  end;

function TMyClass<T>.Blub: T;
begin
  result := FValue;
end;

var
  int: IMyInterface<Integer>;
  dbl: IMyInterface<Double>;
begin
  int := TMyClass<Integer>.Create(1);
  dbl := TMyClass<Double>.Create(0.1);

  Assert(Supports(int, IMyInterface<Double>));
  Assert(Supports(dbl, IMyInterface<Integer>));
end;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat