En Delphi 2010, he definido un TInterfaceList genérica de la siguiente manera:¿Es Delphi generic TInterfaceList posible?
type
TInterfaceList<I: IInterface> = class(TInterfaceList)
function GetI(index: Integer): I;
procedure PutI(index: Integer; const Item: I);
property Items[index: Integer]: I read GetI write PutI; default;
end;
implementation
function TInterfaceList<I>.GetI(index: Integer): I;
begin
result := I(inherited Get(Index));
end;
procedure TInterfaceList<I>.PutI(index: Integer; const Item: I);
begin
inherited Add(Item);
end;
no he tenido ningún problema todavía, pero ¿hay algo inherentemente arriesgada de hacer esto? ¿Sería posible agregar un enumerador para permitir que los bucles..in trabajen en él? Si no tiene nada de malo, me pregunto por qué algo similar no está ya definido en la RTL.