A L*_*rdo 3 delphi generics delphi-xe2
我想声明一个通用记录类型,如
TMyGenericRecord<T, T1> = record
X: <T>;
Y: <T1>;
end;
Run Code Online (Sandbox Code Playgroud)
然后我想声明TMyGenericRecord的TList但似乎无法获得正确的语法.
TMyGenericList = TList<TMyGenericRecord<T, T1>>???
Run Code Online (Sandbox Code Playgroud)
这甚至可能吗?
我想你想这样写:
type
TMyGenericRecord<T1, T2> = record
X: T1;
Y: T2;
end;
TMyGenericList<T1, T2> = class(TList<TMyGenericRecord<T1, T2>>);
Run Code Online (Sandbox Code Playgroud)
然后,您可以像这样实例化类型,例如:
var
List: TMyGenericList<Integer, string>;
Run Code Online (Sandbox Code Playgroud)
然后,您可以声明与此列表兼容的记录,如下所示:
var
Rec: TMyGenericRecord<Integer, string>;
Run Code Online (Sandbox Code Playgroud)
在这一点上
List.Add(Rec);
Run Code Online (Sandbox Code Playgroud)
将编译.虽然显然你需要构建一个列表实例.
归档时间: |
|
查看次数: |
726 次 |
最近记录: |