Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用if(!dead)与if(dead==false)类似吗?_C#_Unity3d - Fatal编程技术网

C# 使用if(!dead)与if(dead==false)类似吗?

C# 使用if(!dead)与if(dead==false)类似吗?,c#,unity3d,C#,Unity3d,这是我的密码。我能把它写在下面吗?isDead是个笨蛋 if (isDead == false){ if(Input.GetMouseButtonDown(0)){ rb.velocity = Vector2.zero; } } 对!!这是相似的。我更喜欢第二个。是的,它应该有用!切换布尔值,因此如果为真则变为假,如果为假则变为真。因此,如果dead为false,那么它将返回true,if语句将执行。是的,您可以做的另一件事是在第一个if条件中转换要验证的第二个

这是我的密码。我能把它写在下面吗?isDead是个笨蛋

if (isDead == false){
    if(Input.GetMouseButtonDown(0)){
        rb.velocity = Vector2.zero;
    }
}

对!!这是相似的。我更喜欢第二个。

是的,它应该有用!切换布尔值,因此如果为真则变为假,如果为假则变为真。因此,如果dead为false,那么它将返回true,if语句将执行。

是的,您可以做的另一件事是在第一个if条件中转换要验证的第二个if条件,以使代码更干净

if语句根据布尔表达式的值标识要运行的语句。因此,由于dead是bool类型的参数,因此只需验证条件就足够了,不需要显式比较

if (!isDead && Input.GetMouseButtonDown(0)){
      rb.velocity = Vector2.zero;
}

是的,任何解析为布尔值的东西都可以使用,而无需与另一个布尔值和
进行比较可用于翻转Bool。在某些情况下,
==false
更具可读性否定,所以我个人不会说“你必须永远……”

你可能会发现,作为一个通用的编程概念,让你的布尔人有积极的意图比消极的意图更有用

在这个特定的上下文中,我不是说“死”是否定的,而是说“活”是肯定的(作为一般概念),而是说如果你发现你的大多数检查都是通过调用
来询问某个东西是否是活的!isDead
然后将布尔值转换为跟踪
isAlive


在其他上下文中,通常最好在变量名上使用正斜线,这样您就不会得到充满双重否定的代码。。可能喜欢使用
启用
可读
而不是
!禁用
!不可读

是的,你可以而且应该使用第二种方法,它做的事情完全一样。。。然而,通常您宁愿选择逻辑运算符
而不是
==
与所有这些都没有直接关系-但我会使用
isAlive
。我的意思是,我猜大多数时候这个角色应该是什么样子的,不是吗?:)为什么?什么时候人们可能更喜欢一种语法而不是另一种?我更喜欢第一种变体,因为它是标准变体。使用通用约定编写代码是很好的,因为这样代码更容易阅读。此外,如果他们在一个团队中使用相同的约定,这会更好。
if (!isDead && Input.GetMouseButtonDown(0)){
      rb.velocity = Vector2.zero;
}