if (!变量)是啥意思,该怎么处理

if (!变量)是啥意思
if (!enableCaching)
  return cat.GetCategories();
是啥意思

------解决方案--------------------
判断 !enableCaching的BOOL量,!操作符是取反的意思,例如!True = false !Flase= True

!还有个用途就是按位取反,比如5的二进制是00000101 !5 = 11111010
------解决方案--------------------
补充一下,布尔和整形的转换规则是,零值为假;非零值为真
------解决方案--------------------
bool表达式知道吗?

!就是 not

------解决方案--------------------
enableCaching 也可能是整型(纯c), 为0的话, !enableCaching 就是1
条件成立, 进入if块; 为其它值的话, 条件都不成立

------解决方案--------------------
逻辑取反