Estoy intentando escribir una propiedad que utiliza los genéricos:establecimiento a través de los genéricos en Delphi
type TMyClass = class
protected
function GetCountBy<T: Class>: Integer;
public
property CountBy<T: Class>: Integer read GetCountBy<T>;
end;
pero el compilador falla en la declaración de propiedad con el mensaje 'Propiedad CountBy no existe en la clase base', y el garabato rojo en la apertura < del nombre de la propiedad.
¿Hay alguna manera de lograr esto?
Editar: Aquí es mi otro caso de uso, lo que es más complejo, pero el mundo más real:
property ItemsBy<T: Class>[Index: Integer]: T read GetItemsBy<T> write SetItemsBy<T>;
La función filtra el contenido de una lista para devolver el artículo Index'th de la clase especificada.
Simplemente necesita TDictionary aquí. Los genéricos no son apropiados para este problema. –
-1. Esta sería una mejor pregunta si estuviera motivada por un problema que realmente se beneficiaría de los genéricos. El ejemplo "propiedad genérica" en la pregunta no necesita genéricos en absoluto. Esto tiene el potencial de ser una buena pregunta acerca de la sintaxis correcta para las propiedades genéricas (si tal sintaxis existe), pero el problema de ejemplo a ser resuelto por tal sintaxis realmente no demuestra la necesidad. –