Pie*_*Wyk 3 delphi types typechecking
如何确定变量的值是否在"类型声明"的范围内.防爆.
Type
  TManagerType = (mtBMGR, mtAMGR, mtHOOT);
...
var
  ManagerType: TManagerType;
....
procedure DoSomething;
begin
  if (ManagerType in TManagerType) then
    DoSomething
  else
    DisplayErrorMessage;
end;
Run Code Online (Sandbox Code Playgroud)
谢谢,彼得.
InRange: Boolean;
ManagerType: TManagerType;
...
InRange := ManagerType in [Low(TManagerType)..High(TManagerType)];
Run Code Online (Sandbox Code Playgroud)
正如Nickolay O.所说 - 虽然上面的布尔表达式直接对应于:
(Low(TManagerType) <= ManagerType) and (ManagerType <= High(TManagerType))
Run Code Online (Sandbox Code Playgroud)
编译器不会根据单个子范围执行针对立即设置检查成员资格的优化.因此,[成熟]优化的代码将不那么优雅.
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           1105 次  |  
        
|   最近记录:  |