【发布时间】:2009-07-12 19:30:20
【问题描述】:
那么初始化记录的首选方式是什么?
带有“工厂功能”:
TMyRecord = record
valueX: integer;
valueY: integer;
end;
function MyRecord(const AValueX, AValueY: integer): TMyRecord;
begin
result.valueX := AValueX;
result.valueY := AValueY;
end;
var
myrec: TMyRecord;
begin
myrec := MyRecord(1, 2);
end;
或构造函数:
TMyRecord = record
valueX: integer;
valueY: integer;
constructor Create(const AValueX, AValueY: integer);
end;
constructor TMyRecord.Create(const AValueX, AValueY: integer);
begin
self.valueX := AValueX;
self.valueY := AValueY;
end;
var
myrec: TMyRecord;
begin
myrec := TMyRecord.Create(1, 2);
end;
感觉构造函数的东西比较封装,但是看代码的时候容易混淆。它使它看起来像一个缺少免费调用的类。打字也多了……
为什么你更喜欢其中一个?
【问题讨论】:
标签: delphi constructor record