内置数据类型和枚举的运算符重载

问题描述

Delphi 中的枚举是否可以重载隐式类型转换?

program TriState;

type
  TTrilean = (trNone = -1,trFalse = 0,trTrue = 1);
  TTrileanHelper = record helper for TTrilean
  public
    class operator Implicit(...)...; //E2123 PROCEDURE,FUNCTION,PROPERTY,or VAR expected
  end;

var
  v: TTrilean;

begin
  v := trNone;
  v := True; //Would like to have class operator Implicit here
end.

解决方法

Delphi 10.4.2 documentation中我读到:

注意:类和记录助手不支持运算符重载。