根据整数设置布尔值

时间:2009-01-07 14:03:26

标签: c# coding-style readability

我发现这个陈述是一些旧代码,我花了一秒钟才弄明白......

IsTestActive = (TestStateID == 1 ? true : false);

如果我错了,请纠正我,但这不是这个吗?:

IsTestActive = (TestStateID == 1);

如果是的话,你为什么要使用第一个呢?哪一个更具可读性? (我想是后者,但我想看看别人的想法。)

5 个答案:

答案 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;