那么初始化记录的首选方法是什么?Delphi:记录构造函数与工厂函数
以“工厂功能”:
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;
我觉得构造事情更封装,但它使阅读代码的时候很容易混淆。它使它看起来像一个没有免费电话的班级。这也是更多类型...
为什么你会喜欢一个在另一个?
我也使用记录构造函数。如果你喜欢,你可以命名它与“创建”不同,所以你知道它是一个记录。 – 2009-07-13 02:58:58
仅供参考您提到的内部错误问题在D2010中似乎已得到修复。 – 2010-05-09 23:06:56