Delphi: определить фактический тип универсального?
Есть ли способ определить тип переменной, передаваемой в качестве аргумента в метод? Рассмотрим класс:
TSomeClass = class
procedure AddToList<T: TDataType; U: TListClass<T>>(Element: T; List: U);
end;
с реализацией метода
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;
где TInt.Create () и TString.Create () имеют разные наборы аргументов, но оба они наследуют от TDataType.
Теперь я знаюis
-оператор не может быть использован таким образом, но есть ли легальная альтернатива, которая делает то, что я здесь спрашиваю?