【发布时间】:2020-01-31 08:32:26
【问题描述】:
我正在尝试编写一个帮助类函数而不静态引用帮助类:
TMyEnum = (meA, meB, meC);
TMyEnumHelper = record helper for TMyEnum
public
class function InRange(AValue : integer) : Boolean; static;
end;
...
class function TMyEnumHelper.InRange(AValue : Integer) : Boolean;
begin
Result := (
(AValue >= Ord(Low(TMyEnum))) and
(AValue <= Ord(High(TMyEnum)))
);
end;
有没有办法动态获取帮助类? 我的意思是类似于以下代码:
class function TMyEnumHelper.InRange(AValue : Integer) : Boolean;
begin
Result := (
(AValue >= Ord(Low(HelpedClass))) and
(AValue <= Ord(High(HelpedClass)))
);
end;
我试过使用Self,但德尔福说E2003 Undeclared identifier: 'Self'
【问题讨论】:
-
如果枚举是连续的,您可以使用泛型“帮助器”类来获取使用 RTTI 的范围。见Using an enum with generics
-
是的,不要使用辅助类。使用这样的类型:stackoverflow.com/a/27902039/505088
标签: delphi helper delphi-xe7