gpt4 book ai didi

C#:周围有空格!运营商,如何解读?

转载 作者:太空宇宙 更新时间:2023-11-03 19:45:41 29 4
gpt4 key购买 nike

我不是每天都阅读 C#,而是正在阅读最近的提交,其中包含一些让我感到困惑的内容:

if (( length > maxLength) && ! IsTable(furniture.FurnitureType))
do_something;

我在精神上解析 && 和 !运营商,特别是因为 !运算符后面有一个空格。

问题可以提炼为:

是(带空格)

if (( length > maxLength) && ! IsTable(furniture.FurnitureType))

与(无空格)相同:

if (( length > maxLength) && !IsTable(furniture.FurnitureType))

具体问题是:

  • IsTable() 是否改变了评估?
  • 后面是空格!基本上让第一个评估完成所有工作?

或者,关于可接受的语法,我是否遗漏了什么。

最佳答案

在 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不是一张 table 。一把椅子、一张 table 、一个壁橱甚至一张凳子。但不是 table 。

关于C#:周围有空格!运营商,如何解读?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46042025/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com