为什么我不能对类使用运算符重载?

Kov*_*xey 2 delphi syntax operator-overloading

我在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;
Run Code Online (Sandbox Code Playgroud)

错误发生在第4行

E2123预期的程序,功能,财产或VAR

我为Windows写这个.但如果它只适用于.net和iOS,我该如何为Windows做到这一点?

MBo*_*MBo 11

可以仅对记录使用运算符重载,而不是在Delphi for Windows中使用类.
http://docwiki.embarcadero.com/RADStudio/XE4/en/Operator_Overloading_(Delphi)

一些有用的解释

PS TDateTime是用户类型的错误名称.