![]() |
Generics und parametrisierter Konstruktor
Hallo,
ich habe eine Liste mit unterschiedlichen Elementen (List<T>), welche für jeden Typ eine Factory bereit stellen soll:
Code:
Logisch könnte der Spaß wie oben aussehen, aber C# lässt die Definition für T "new(p1, p2, p3) nicht zu.
class list<T> where T: new(p1, p2, p3) {
class elem<T> { public elem(p1, p2, p3): base(p1, p2, p3) {} public T newInstance() { return new T(p1, p2, p3); } ... } ... } Geht das unter Delphi (Prism)? Ist es überhaupt möglich? Ich persönlich erkenne kein technisches Hindernis, welches dieses Konstrukt unmöglich machen könnte. Oder kennt ihr "Umwege", die das realisieren, was ich vorhabe? Ich möchte NICHT, dass die Factories in den konkreten Typen (welche später <T> ersetzen) eingebettet werden müssen, da diese Factories (indirekten Konstruktoren) public sein müssen (es soll aber nicht jeder eine "Kopie" ohne "new" erstellen dürfen). Meine derzeitiger Workaround besteht aus Delegates, die ich newInstance übergebe. Ist aber auch nicht die Lösung, da die Delegates von außen (vom Listen-Nutzer) übergeben werden müssen. Ich danke euch und freue mich über jede Idee |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:17 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-2025 by Thomas Breitkreuz