Einzelnen Beitrag anzeigen

hzzm

Registriert seit: 8. Apr 2016
103 Beiträge
 
Delphi 10 Seattle Professional
 
#8

AW: Generisches Alias von TFrame

  Alt 15. Mai 2018, 07:36
Wozu willst du eine Spezialisierung? Ich leite immer ab wenn ich es brauche.
Wenn TObstKorb<TBanane>.Create funktionieren wuerde, koennte ich in einer generischen Funktion in Abhaengigkeit von T a la
Delphi-Quellcode:
constructor TProgrammModel<T>.Create;
begin
  Data := TObstKorb<T>.Create;
end;
die Generik weiterreichen. Das waere doch praktisch, oder?
So wie es aussieht, muss ich aber in jeder generischen Ebene dann so einen Schei*dreck wie
Delphi-Quellcode:
constructor TProgrammModel<T>.Create;
var
  AInfo: PTypeInfo;
  AInfoData: PTypeData;
  tkString: String;
begin
  AInfo := System.TypeInfo(T);
  AInfoData := GetTypeData(AInfo);
  tkString := TypInfo.GetEnumName(System.TypeInfo(T), Ord(AInfoData^.OrdType));

  if tkString = 'tkBananethen
    AKorb := TBanenenKorb.Create
  else if tkString = 'tkApfelthen
    AKorb := TApfelKorb.Create;
end;
machen.
Erst so kann ich AKorb<T: TFrucht> wirklich generisch verwenden?! Und das in jeder generischen Hierarchie-Ebene?
JESUS CHRIST, please kill me.

Oder uebersehe ich da jetzt massiv was...

Geändert von hzzm (15. Mai 2018 um 07:40 Uhr)
  Mit Zitat antworten Zitat