我目前必须为一位同事做一些假期替换,并且必须更改他的一些代码。
我发现了很多条件,比如
if (true == variablename) {...}
我只是想知道这种语法是否有什么特别之处?像我们大多数人一样,我只想写
if (variablename) {...}
反而。令我恼火的是条件左侧的真实情况。它会在右边吗?我只是希望同事在布尔条件下不先进。
在开始时设置 true 是否有任何性能差异或类似的东西?
这可能是学习 C/C++ 的遗留问题,通常会被这个 bug 咬伤:
if (variablename = true) { ... }
在对编译器进行调整以对此发出警告之前(请注意,它执行的是赋值,而不是比较),上面的代码在静默执行时出现了一个错误。
但是,如果你学会了反过来写表达式,你就不会被上面的代码咬住,因为它不会以这种形式编译:
if (true = variablename) { ... }
但是,在 C# 中,这不是问题,您可以像显示的那样编写它而不进行比较(只要它true
无论如何都比较),或者将文字放在比较运算符的右侧。
不,没有任何区别,它只是一种代码风格。那是。
我唯一想到的是:
如果variablename
变为Nullable 类型(由于一些重构、键入错误或其他原因),此代码仍将按预期编译和工作。
相反,如果你这样写:
if (variablename) {...}
您将收到编译时错误,因此您将被迫更改代码。
在开始时设置 true 是否有任何性能差异或类似的东西?
我认为对于许多具有 C++ 背景的人来说,一开始就拥有 true 是很常见的;通过放置if(b = true)
而不是分配值很容易if(b==true)
;而你不能这样做if(true = b)