检查断言是否在Delphi中处于活动状态的条件是什么?
当代码中的断言不活动时,我希望能够做一些事情来抑制有关未使用变量的提示
procedure Whatever; var v : Integer; begin v := DoSomething; Assert(v >= 0); end;
解决方法
您可以使用
$IFOPT
指令执行此操作:
{$IFOPT C+} // this block conditionally compiled if and only if assertions are active {$ENDIF}
所以你可以像这样重写你的代码:
procedure Whatever; {$IFOPT C+} var v : Integer; {$ENDIF} begin {$IFOPT C+}v := {$ENDIF}DoSomething; {$IFOPT C+}Assert(v >= 0);{$ENDIF} end;
这将抑制编译器提示,但它也会使你的眼睛流血.
我可能会像这样压制它:
procedure SuppressH2077ValueAssignedToVariableNeverUsed(const X); inline; begin end; procedure Whatever; var v : Integer; begin v := DoSomething; Assert(v >= 0); SuppressH2077ValueAssignedToVariableNeverUsed(v); end;