C# 使用if(!dead)与if(dead==false)类似吗?
这是我的密码。我能把它写在下面吗?isDead是个笨蛋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条件中转换要验证的第二个
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;
}