Delphi: determinar el tipo real de un genérico?
¿Hay alguna forma de determinar el tipo de una variable pasada como un argumento a un método? Considera la clase:
TSomeClass = class
procedure AddToList<T: TDataType; U: TListClass<T>>(Element: T; List: U);
end;
con la implementación del método
procedure TSomeClass.AddToList<T, U>(Element: T; List: U);
begin
if Element is TInt then
List.AddElement(TInt.Create(XXX))
else if Element is TString then
List.AddElement(TString.Create(YYY));
end;
donde TInt.Create () y TString.Create () tienen diferentes conjuntos de argumentos, sin embargo, ambos heredan de TDataType.
Ahora, yo sé lais
-El operador no se puede usar de esta manera, pero ¿hay una alternativa legal que haga lo que le pido aquí?