![]() |
Generics in Delphi
Hi,
Gibt es irgendwo eine wirklich ausführliche, alles erklärende Dokumentation der Generics in Delphi? Die Grundlagen kann ich ja, aber jetzt habe ich mal folgendes versucht:
Delphi-Quellcode:
Eigentlich sogar recht logisch, dass das nicht funktioniert, aber bekomme dann folgende Meldung von Delphi:
type
TBeispiel<T: Class> private FTest: T; public procedure TestProc; end; implementation procedure TBeispiel<T>.TestProc; begin FTest := T.Create; end; Zitat:
Gruß Neutral General |
Re: Generics in Delphi
Versuche es mal mit
Delphi-Quellcode:
Damit schränkst Du die Typenvielfalt ein und forderst, dass das, was da kommen mag, auf jeden Fall einen Kontruktor besitzen muss.
<T : Constructor >
|
Re: Generics in Delphi
Ok Danke ;)
Aber gibts trotzdem nicht irgendwo ne ausführliche Dokumentation über die Generics? Damit man mal nen Überblick hat was möglich ist und wies geht. |
Re: Generics in Delphi
Hallo Michael,
Marco Cantù hat eine kleine Einführung geschrieben, die du bei Embarcadero herunterladen kannst: ![]() Gruß Hawkeye |
Re: Generics in Delphi
Hi,
Habe gerade ein kleines Problem... EDIT: Und die Lösung lautet:
Delphi-Quellcode:
=====
Result := Default(T);
Delphi-Quellcode:
Funktioniert prinzipiell wunderbar. Aber ich habe dann folgendes in meinem Code:
IAssignable = interface(IUnknown)
procedure Assign(AObject: TObject); end; TMeineKlasse<T: Class, Constructor, IAssignable> = class;
Delphi-Quellcode:
Das funktioniert allerdings nur wenn ich IAssignable aus den Einschränkungen entferne...
function TMeineKlasse<T>.GetT: T;
begin if FIndex = -1 then Result := nil else Result := FData[FIndex]; end; So funktioniert es:
Delphi-Quellcode:
Und so
TMeineKlasse<T: Class, Constructor> = class;
Delphi-Quellcode:
bekomme ich die Fehlermeldung
TMeineKlasse<T: Class, Constructor, IAssignable> = class;
Zitat:
Delphi-Quellcode:
Das finde ich ziemlich...blöd! Wieso funktioniert das denn jetzt nicht mehr? -.-
Result := nil
Gruß Neutral General |
Re: Generics in Delphi
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz