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

时间:2019-02-09 00:36:13

标签: delphi code-completion

我将继续关注Pawel Glowacki的Expert 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();

3 个答案:

答案 0 :(得分:9)

它们都是正确的。当过程或方法不需要参数时,对象Pascal允许您省略括号,但也可以包含它们。由您自己决定。

答案 1 :(得分:8)

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

答案 2 :(得分:3)

它们相同,并且都正确。但是,如果将构造函数与参数一起使用,则括号会更有帮助。