我不是每天都阅读C#,并且正在阅读最近提交的东西,这些东西让我感到害怕:
if (( length > maxLength) && ! IsTable(furniture.FurnitureType))
do_something;
Run Code Online (Sandbox Code Playgroud)
我在精神上解析&&和!运营商,特别是因为!运营商之后有一个空间.
问题可以归结为:
是(有空间)
if (( length > maxLength) && ! IsTable(furniture.FurnitureType))
Run Code Online (Sandbox Code Playgroud)
与(没有空格)相同:
if (( length > maxLength) && !IsTable(furniture.FurnitureType))
Run Code Online (Sandbox Code Playgroud)
具体问题是:
或者,我是否缺少可接受的语法.
在C#中,&&运算符意味着仅在第一个条件为时才检查第二个条件true.
所以,只有当(length > maxLength)是true,那么!IsTable(furniture.FurnitureType)情况进行检查.
当C#编译时,它会忽略大多数运算符之后的空格,例如!.所以后面的空间!毫无意义.
! IsTable(furniture.FurnitureType)
Run Code Online (Sandbox Code Playgroud)
就像:
!IsTable(furniture.FurnitureType)
Run Code Online (Sandbox Code Playgroud)
并且它意味着如果IsTable(furniture.FurnitureType)是true,则结果为false,反之亦然.
所以,你的整个if条款true只有在length > maxLength你FurnitureType不是一张桌子的情况下.椅子,桌子,壁橱甚至凳子.但不是一张桌子.
| 归档时间: |
|
| 查看次数: |
73 次 |
| 最近记录: |