Einzelnen Beitrag anzeigen

backdraft

Registriert seit: 19. Apr 2005
Ort: Hückeswagen
335 Beiträge
 
Delphi 11 Alexandria
 
#1

Generics mit abgeleiten Klassen

  Alt 19. Okt 2011, 14:11
Hallo zusammen,

ich probiere mich heute das erste mal an Generics und habe irgendwie ein Verständnisproblem.

Ich habe eine Basisklasse und davon eine Ableitung.
Jetzt möchte ich, dass meine Generic Klasse entweder die Basisklasse nimmt, oder die Ableitung.

Code:
unit MyClass;

interface

type
  TMyBase = class
  private
    FBaseProperty: Integer;
  public
    property BaseProperty: Integer read FBaseProperty write FBaseProperty;
  end;

  TMyExtended = class(TMyBase)
  private
    FExtendedProperty: Integer;
  public
    property ExtendedProperty: Integer read FExtendedProperty write FExtendedProperty;
  end;

  TMyGeneric<T: TMyBase>=class
  private
    FMyItem: T;
  public
    constructor Create;
    property MyItem: T read FMyItem;
  end;

  TMyBaseClass = TMyGeneric<TMyBase>;
  TMyExtendedClass = TMyGeneric<TMyExtended>;

var
  vMyBaseItem: TMyBaseClass;
  vMyExtendedItem: TMyExtendedClass;

implementation

{ TMyGeneric<T> }

constructor TMyGeneric<T>.Create;
begin
  inherited;
  FMyItem := TMyBase(T).Create;
end;

end.
Es knallt an der Stelle
Code:
 TMyExtendedClass = TMyGeneric<TMyExtended>;
E2010 Inkompatible Typen: 'TMyExtended' und 'TMyBase'

Was mache ich denn falsch?
Oliver
  Mit Zitat antworten Zitat