我在TDateTime中遇到类运算符的问题。

type
  TDateTime = class(TObject)
  public
    class operator Add(a: TDateTime; b: TTimeSpan): TDateTime;
    class operator Subtract(a: TDateTime; b: TTimeSpan): TDateTime;
end;

implementation

class operator TDateTime.Add(a: TDateTime; b: TTimeSpan): TDateTime;
begin
  result := TDateTime.Create(a.Ticks + b.Ticks);
end;

class operator TDateTime.Subtract(a: TDateTime; b: TTimeSpan): TDateTime;
begin
  result := TDateTime.Create(a.Ticks - b.Ticks);
end;


错误发生在第四行

E2123预期的过程,功能,属性或VAR

我为Windows编写此代码。但是,如果仅适用于.net和iOS,我该如何针对Windows?

最佳答案

可以仅对记录使用运算符重载,而对于Windows Delphi中的类不能使用运算符重载。
http://docwiki.embarcadero.com/RADStudio/Rio/en/Operator_Overloading_(Delphi)

Some useful explanations

附言TDateTime是用户类型的错误名称。

关于delphi - 为什么不能对类使用运算符重载?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22541928/

10-11 01:06