Delphi 中的 .Create 和 .Create() 有什么区别?

What is the difference between .Create and .Create() in Delphi?

我正在阅读 Pawel Glowacki 的专家 Delphi 一书。在第 98 页上,他有以下 onClick 事件处理程序:

procedure TFormFavJSON.btnReadDOMClick(Sender: TObject);
var
  favs: TFavorites; valRoot: TJSONValue;  objRoot: TJSONObject;
  valFavs: TJSONValue;  arrFavs: TJSONArray;
begin
  favs := TFavorites.Create;
  //
  // Several lines of code omitted
  //
  favs.Free;
end;

然而,当我键入 .Cre 并使用代码完成 Ctrl + Space 时,IDE 完成带有一组空括号的代码。

favs := TFavorites.Create();

那么下面哪一个是最正确的?

  favs := TFavorites.Create;
  favs := TFavorites.Create();

没有区别。 Pascal 允许任何一种语法。不需要的时候我更喜欢不带括号

他们都同样正确。 Object Pascal 允许您在过程或方法不需要参数时省略括号,但也允许您包含它们。看你喜欢哪个。

它们是一样的,而且都是正确的。但是如果你使用带有参数的构造函数,括号会更有帮助。