gpt4 book ai didi

delphi - Delphi 记录中的构造函数和过程有什么区别?

转载 作者:行者123 更新时间:2023-12-03 15:31:29 25 4
gpt4 key购买 nike

Delphi 记录中的构造函数调用和过程调用之间的行为是否存在差异?我有一个 D2010 代码示例,想要转换为 D2009(我正在使用)。该示例使用无参数构造函数,这在 Delphi 2009 中是不允许的。如果我替换为简单的无参数过程调用,记录是否有任何功能差异?

即:

  TVector = record
private
FImpl: IVector;
public
constructor Create; // not allowed in D2009
end;

变成

  TVector = record
private
FImpl: IVector;
public
procedure Create; // so change to procedure
end;

据我所知,这应该可行,但我可能遗漏了一些东西。

最佳答案

记录构造函数在 native Win32 代码中绝对是不必要的误导性语法糖。记录构造函数和过程之间的唯一区别是语法:

TVector = record
constructor Create;
end;

var
vec : TVector;

begin
vec:= TVector.Create;

TVector = record
procedure Create;
end;

var
vec : TVector;

begin
vec.Create;

据我所知,.NET 代码存在差异(我没有使用 .NET)

关于delphi - Delphi 记录中的构造函数和过程有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2495196/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com