那麼初始化記錄的首選方法是什麼?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