我每天都不会阅读C#,并且正在阅读最近提交的一些内容,这些内容让我感到害怕:
if (( length > maxLength) && ! IsTable(furniture.FurnitureType))
do_something;
我无法在心理上解析&&而且!运营商,特别是因为!运营商之后有空格。
问题可以归结为:
是(带空格)
if (( length > maxLength) && ! IsTable(furniture.FurnitureType))
与(没有空格)相同:
if (( length > maxLength) && !IsTable(furniture.FurnitureType))
具体问题是:
或者,我是否缺少可接受的语法。
答案 0 :(得分:5)
在C#中,&&
运算符表示仅在第一个条件为true
时才检查第二个条件。
因此,只有当(length > maxLength)
为true
时,才会检查!IsTable(furniture.FurnitureType)
条件。
当C#编译时,它会忽略大多数运算符之后的空格,例如!
。所以!
之后的空间毫无意义。
! IsTable(furniture.FurnitureType)
就像:
!IsTable(furniture.FurnitureType)
这意味着如果IsTable(furniture.FurnitureType)
为true
,则结果为false
,反之亦然。
因此,只有当if
且您的true
不是表格时,您的整个length > maxLength
子句才会FurnitureType
。椅子,桌子,壁橱甚至凳子。但不是桌子。