Подтвердить что ты не робот

Нужно ли добавлять строку "унаследованных" в конструкторы записи?

Современный 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 в мои конструкторы записей? И почему?

4b9b3361

Ответ 1

Нет, вам не нужно это делать, потому что записи не поддерживают наследование, поэтому inherited - это не-op в этом контексте.

FWIW Я рассматриваю конструкторы записи как анти-шаблон. Это затрудняет читателю на сайте вызова различать тип значения и тип ссылки. Я лично использую функции статического класса с именем New, которые возвращают новое значение для этой цели. Вы можете спорить о том, лучше ли другое имя, но это не имеет значения, так это не Create.