我是否需要添加"继承"进入记录构造函数?

时间:2015-04-14 12:37:52

标签: delphi constructor record

Modern Delphi允许构造函数用于记录。我有以下代码:

{ TKMRect }
constructor TKMRect.Create(aPoint: TKMPoint);
begin
  inherited; // <<- Do I need to add this line ?

  Left := aPoint.X;
  Top := aPoint.Y;
  Right := aPoint.X;
  Bottom := aPoint.Y;
end;

我的问题是 - 我是否需要在记录构造函数中添加inherited行?为什么?

1 个答案:

答案 0 :(得分:10)

不,你不需要这样做,因为记录不支持继承,所以inherited在这种情况下是无操作的。

FWIW我认为记录构造函数是反模式。这使得呼叫站点的读者难以区分值类型和引用类型。我个人使用名为New的静态类函数为此目的返回一个新值。你可以争论一个不同的名字是否更好,但它并不重要,因为它不是Create