Ich versuche, eine Eigenschaft zu schreiben, die Generika verwendet:Property mit Generics in Delphi
type TMyClass = class
protected
function GetCountBy<T: Class>: Integer;
public
property CountBy<T: Class>: Integer read GetCountBy<T>;
end;
aber die Kompilierung fehl auf dem Grundstück Erklärung mit der Meldung ‚Property CountBy nicht in Basisklasse existieren‘, und der rote Kringel auf der Öffnung < des Eigentumsnamens.
Gibt es eine Möglichkeit, dies zu erreichen?
Edit: Hier ist mein anderer Anwendungsfall, die komplexer ist aber reale Welt:
property ItemsBy<T: Class>[Index: Integer]: T read GetItemsBy<T> write SetItemsBy<T>;
Die Funktion filtert den Inhalt einer Liste des Index'th Element der angegebenen Klasse zurückzukehren.
Sie brauchen einfach TDictionary hier. Generika sind für dieses Problem nicht geeignet. –
-1. Dies wäre eine bessere Frage, wenn sie von einem Problem motiviert würde, das tatsächlich von Generika profitieren würde. Das Beispiel "generische Eigenschaft" in der Frage benötigt keine Generika. Dies kann eine gute Frage sein, die nach der richtigen Syntax für generische Eigenschaften fragt (wenn eine solche Syntax überhaupt existiert), aber das Beispielproblem, das durch eine solche Syntax gelöst werden soll, zeigt nicht wirklich die Notwendigkeit. –