我想声明一个通用记录类型,例如
TMyGenericRecord<T, T1> = record
X: <T>;
Y: <T1>;
end;
然后我想声明TMyGenericRecord的TList,但似乎无法获得正确的语法。
TMyGenericList = TList<TMyGenericRecord<T, T1>>???
这甚至可能吗?
答案 0 :(得分:8)
我想你想这样写:
type
TMyGenericRecord<T1, T2> = record
X: T1;
Y: T2;
end;
TMyGenericList<T1, T2> = class(TList<TMyGenericRecord<T1, T2>>);
然后,您可以实例化此类型,例如:
var
List: TMyGenericList<Integer, string>;
然后,您可以声明与此列表兼容的记录,如下所示:
var
Rec: TMyGenericRecord<Integer, string>;
此时
List.Add(Rec);
将编译。虽然显然你需要构建一个列表实例。