Einzelnen Beitrag anzeigen

Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#1

TList<T> erst in abgeleiteter Klasse instantiieren

  Alt 1. Aug 2018, 07:02
Moin!

Ist es möglich, in einer Basisklasse eine generische TList undefiniert zu lassen und deren Elementtyp erst in abgeleiteten Klassen festzulegen? In etwa so:
Delphi-Quellcode:
unit Unit1;

interface

uses
  System.Generics.Collections;

type
  TMyType1 = class(TObject)
  private
    FListe: TList<T>; // <-- E2003: Undeklarierter Bezeichner: 'T'
  protected
    function Count: Integer;
    property Liste: TList<T> read FListe write FListe;
  end;

  TMyType2 = class(TMyType1)
  public
    constructor Create;
  end;

  TMyType3 = class(TMyType1)
  public
    constructor Create;
  end;

implementation

{ TMyType1 }

function TMyType1.Count: Integer;
begin
  Result := FListe.Count;
end;

{ TMyType2 }

constructor TMyType2.Create;
begin
  Liste := TList<Integer>.Create;
end;

{ TMyType3 }

constructor TMyType3.Create;
begin
  Liste := TList<string>.Create;
end;

end.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat