我发现这个陈述是一些旧代码,我花了一秒钟才弄明白......
IsTestActive = (TestStateID == 1 ? true : false);
如果我错了,请纠正我,但这不是这个吗?:
IsTestActive = (TestStateID == 1);
如果是的话,你为什么要使用第一个呢?哪一个更具可读性? (我想是后者,但我想看看别人的想法。)
答案 0 :(得分:32)
是的,它完全一样。
是的,后者更具可读性。
答案 1 :(得分:5)
IsTestActive = (TestStateID == 1);
肯定更具可读性。
你可以提出定义常量的案例
ACTIVE = 1
然后用
替换布尔变量IsTestActive
(TestStateID == ACTIVE)
现在代码的方式,如果IsTestActive
的状态发生变化而没有更新布尔值,则布尔值TestStateID
的状态将是错误的。绕过布尔值并测试您所追踪信息的真实来源将消除此错误的可能性。
答案 2 :(得分:1)
不,使用第一个版本没有实际的理由,世界并不完美,and neither are programmers.
答案 3 :(得分:0)
可读性取决于您使用此构造的位置。我经常找到像
这样的东西(TestStateID == 1 ? true : false)
更具可读性。
答案 4 :(得分:0)
好吧,我不了解其他语言,但在PHP中使用类型转换更容易:
$IsTestActive = (boolean)$TestStateId;