我很想知道为什么Delphi将记录类型属性视为只读:
TRec = record
A : integer;
B : string;
end;
TForm1 = class(TForm)
private
FRec : TRec;
public
procedure DoSomething(ARec: TRec);
property Rec : TRec read FRec write FRec;
end;
如果我试图给Rec属性的任何成员分配一个值,我会得到“无法赋值给左侧”错误:procedure TForm1.DoSomething(ARec: TRec);
begin
Rec.A := ARec.A;
end;
尽管允许对底层字段执行相同操作:
procedure TForm1.DoSomething(ARec: TRec);
begin
FRec.A := ARec.A;
end;
这种行为有什么解释吗?