delphi - 如何修改TList<record>值?

标签 delphi generics

德尔福2010 如何修改TList<记录>值?

type TTest = record a,b,c:Integer end;
var List:TList<TTest>;
    A:TTest;
    P:Pointer;
....
....

List[10] := A;  <- OK
List[10].a:=1;  <- Here compiler error : Left side cannot be assined to
P:=@List[10];   <- Error: Variable requied

最佳答案

A := List[10];
A.a := 1;
list[10] := A;

您不必对对象执行此操作,因为它们是引用类型(通过编译器内部管理的指针访问以使其远离您的头发),但记录是值类型,因此它不起作用就这样。

关于delphi - 如何修改TList<record>值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2747446/

相关文章:

java - 第 N 次组合 ({a, b} = {b, a}) 无重复(枚举/蛮力)

Swift 通用协议(protocol)函数参数

c# - 如何从对象列表中获取特定类型的对象

generics - Monodroid 泛型不是协变的?

delphi - TBitMap 到 PBitMap KOL

delphi - 使用 Delphi 的消息关键字处理程序语法与变量常量?

delphi - 通用类型的大小

c# - 无法在 C# 中将具体类型转换为其接口(interface)的泛型版本

delphi - 在 Delphi 中,如何从接口(interface)类型数据初始化 TGUID 常量数组?

Delphi Firemonkey DX Seattle TTabControl 在 TVertScrollBox 内时无法正确重印