有没有办法确定作为方法参数传递的变量的类型?考虑班级:
- 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-operator不能像这样使用,但是有没有合法的替代方法来做我在这里要求的东西?