是否有另一种方法可以在不使用-MAXINT的情况下执行此case语句?

Jer*_*dge 0 delphi switch-statement

我有一个case语句,它为结果代码计算一个整数(函数的结果),如下所示:

  R:= DoSomething;
  case R of
    0: begin
      //Success
    end;
    1..99: begin
      //Specific result messages
    end;
    100..199: begin
      //Other specific result messages
    end;        
    -MAXINT..-1: begin
      //Failure
    end;
  end;
Run Code Online (Sandbox Code Playgroud)

如果失败,则返回表示错误代码的负数.DoSomething是任何返回整数作为响应代码的函数(或错误代码,是负数).如果是错误,它将被传递给另一个错误处理程序.如果它成功,它将被传递给成功处理程序(继续等).正值将由各种特定处理程序处理.

我想知道是否还有另一种写作方式-MAXINT..-1.更像"Anything -1 and under"之类的东西.我试过<=-1但编译器不太喜欢那样.

有没有办法在案例陈述中这样做?

Lar*_*tig 5

else对所有未处理的结果使用该块,并在该块中区分失败的执行和没有显式处理程序的成功执行(最后一种情况是您在示例代码中似乎没有考虑过的情况).

  R:= DoSomething;
  case R of
     0: begin
       //Success
     end;
     1: begin
       // Another success
     end
     else begin
        if R >= 0 then 
           // Unhandled successful execution error
        else 
           //Failure
       end;
   end;
Run Code Online (Sandbox Code Playgroud)